1

Properties.Resources.resx標準ファイルには、ローカライズ可能な画像とアイコンがたくさんあります。ほとんどの場合、コンパイル時にリンクされます。それらをいくつかのWPFコントロールに配置したいと思います。

Winフォームでは、

control.Image = Properties.Resources.ImageResourceName;

トリックを実行し、保守可能で、ローカライズ可能で、リファクタリングの影響を受けず、Windows フォーム デザイナーのみを使用して実行できますが、WPF (xaml OR コード) で同様の結果を達成する方法がわかりません。

4

1 に答える 1

2

resxファイルに保存されているのはDrawing.Bitmapです。以下のコードを使用して、BitmapSourceに変換できます。このコードは、たとえばコンバーターに配置できます。個人的には、resxの名前とressourceの名前を取り、このコードを呼び出すMarkupExtensionを定義しました。

private BitmapSource bitmapToSource(System.Drawing.Bitmap bitmap)
{
    BitmapSource destination;
    IntPtr hBitmap = bitmap.GetHbitmap();
    BitmapSizeOptions sizeOptions = BitmapSizeOptions.FromEmptyOptions();
    destination = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, sizeOptions);
    destination.Freeze();
    return destination;
}
于 2012-10-03T10:08:01.520 に答える