質問

この質問の動機は、実際には、ImageSource の依存関係プロパティを介してユーザー コントロールで使用される画像を指定することです。このための管理、アクセス、単体テストに関連するいくつかの問題点に直面しています。

  • リソース エディターは、アプリケーションのイメージを管理するために使用するのに適したツールですか?
  • ビットマップをエディタから ImageSource に変換する最良の方法は何ですか?
  • エディターからリソースのファイル名を取得するにはどうすればよいですか?
役に立ちましたか?

解決

いいえ、リソース エディターはこれには適したツールではありません。

WPF アプリケーションでは、すべての画像を「Images」ディレクトリに置き、それぞれを「リソース」としてマークするのが最善の方法です。その後、イメージ コントロールや他の場所でそれらを直接参照できます。

正確な手順は次のとおりです。

  • お気に入りのビットマップ編集プログラム (Paint.NET、Photoshop など) を使用して画像をトリミングしたり調整したりできます。
  • .png ファイル (または、必要に応じて .jpg または .gif) として保存します。
  • Visual Studio ソリューション内に「Images」フォルダーを作成します (または、整理したい場合は複数のフォルダー)
  • 画像をハードディスクから「画像」フォルダーにドラッグします (またはプロジェクトを右クリックし、[新規] -> [既存の項目] を選択して画像を選択します)。

これで、XAML で画像を簡単に参照できるようになりました。

<Image Source="Images/MyImage.png" />

またはコード内で次のようにします。

var source = (BitmapSource)Application.LoadComponent(
               new Uri("Images/MyImage.png", UriKind.Relative));

外部アセンブリ内のイメージを参照することもできます。

<Image Source="ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png" />

コードでは次のようになります。

var source = (BitmapSource)Application.LoadComponent(
               new Uri("ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png",
                 UriKind.Relative));
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top