2011-07-03 12 views
0

私はカスタムコントロール(固定画像付きの丸いボタン)を作成して動作することをテストしました。しかし、私はこの特定のコントロールを他のプロジェクトで再利用したいので、クラスライブラリを作成することを考えました。ただし、他のアプリケーションでカスタムコントロールを表示しようとすると、ボタンがクリックに反応してもアイコンは表示されません。参照のカスタムコントロールが正しくレンダリングされない

私はクラスライブラリプロジェクトのコンテンツとリソースとしてアイコンを作成しようとしましたが、無駄にテストしました。 (もちろん、ビルドアイコンを更新したときにコード内のアイコンのアドレッシングを変更します)。現時点では、アイコン/icons/myimage.pngをコンテンツとして構築することを決めました。そして、クラスライブラリコード(XAML)では、私は "/icons/myimage.png"としてアクセスしています。

私のプロジェクトでは、どのように丸いボタンを適切にレンダリングすることができるのでしょうか?どのようにクラスライブラリプロジェクトを構築する必要がありますか?

+0

リソースビルドアクションで試したことはありますか? –

+0

@Georgi Stoyanov - これはReference DLLで設定されているとおりです:アイコンはリソースとして保存されます。また、アイコンがコンテンツとして構築されている場合、。 MyLibは、クラスライブラリプロジェクトの作成時に作成されるアセンブリです。 –

答えて

0

私はちょっと実験して解決策を見つけました。考え方は埋め込みリソースを使用してイメージをdllに格納することです。そしてCustomControlことによってそれをロードするため、1がこのような構造を使用することができます:ここ

BitmapImage img = new BitmapImage(); 
img.SetSource(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyLib.icons.my_icon.png")); 

MYLIBは、クラスライブラリのアセンブリの名前です。 iconsは、リソースがアセンブリ内に保持されるフォルダです。

0

私はクラスライブラリのグラフィックス部分を作成しません。将来的にはカスタマイズする必要があるでしょうから、カスタムモジュールで次のプロパティを作成し、それを使用してください:

public ImageSource ButtonImage {get { return <button image>; } set { <set button image>; } } 
+0

返事をありがとう。ただし、この特定のケースでは、そのコントロールのアイコンはさまざまなプロジェクト全体で変更されません。私はあなたの意見を理解していますが、私はすべてのプロジェクトで制御する設定を望んでいません。私は何を達成したいのですか? –

関連する問題