如何在WPF中使用可本地化的resx映像?

时间:2012-10-03 09:49:37

标签: wpf embedded-resource resx

我在标准Properties.Resources.resx文件中有一堆可本地化的图像和图标;它们大多在编译时链接。我想把它们放在一些WPF控件上。

在WinForms中,

control.Image = Properties.Resources.ImageResourceName;

诀窍,可维护,可本地化,不易受重构,并且只能使用Windows窗体设计器完成,但我无法弄清楚如何在WPF中实现类似的结果(xaml OR代码)。

1 个答案:

答案 0 :(得分:2)

resx文件中存储的是Drawing.Bitmap。 您可以使用下面的代码将其转换为BitmapSource。 例如,该代码可以放在转换器中。 Personnaly,我已经定义了一个MarkupExtension,它使用resx的名称和ressource的名称并调用此代码。

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;
}