Winforms プロジェクトと WPF プロジェクトの両方で使用したい png、ビットマップ、およびアイコンが多数あります。
私は winforms でリソースを使用することに慣れており、WPF のリソースに満足しています。
両方が共有する共通のリソースを持っている場合、人々は何をしていますか? 私の現在の感覚では、WPF リソース アセンブリと Winforms リソース アセンブリが必要ですが、私が調べたアプローチはどれも流動的ではないようです。
ありがとう
WPF コントロールと Winforms コントロールの両方を含むプロジェクトがあります。このプロジェクトには、すべての画像を含むリソース フォルダーがあります。相対パスを使用してディスクからロードするだけです。
プロジェクト名が「MyProject」で、イメージ パスがプロジェクト フォルダー内の「MyImages」という名前のフォルダーで、イメージ名が「MyImage.bmp」であると仮定すると、次のようにロードできます。
Winforms で:
new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProject.MyImages.MyImage.bmp")
WPFで
<Image Source="pack://application:,,,/MyProject;Component/MyImages/MyImage.bmp">
それが役に立てば幸い...
Amittai Shapira による回答は、ビルド アクションが「埋め込みリソース」に設定されている場合に機能します。ビルド アクションを「リソース」に設定した場合は、次を使用できます。
Winフォーム:
Bitmap photo;
var picUri = new Uri(@"pack://application:,,,/MyProject;component/MyImages/MyImage.bmp", UriKind.Absolute);
var resourceInfo = Application.GetResourceStream(picUri);
if (resourceInfo != null)
{
photo = new Bitmap(resourceInfo.Stream);
}
WPF:
<Image Source="MyImages/MyImage.bmp"/>