我的 WPF 应用程序包含一个资源文件 MyResources.resx,其中包含多个字符串和图像。因为应用程序需要本地化,所以我对全局化资源的所有引用都必须通过自动生成的 MyResources 类的命名属性进行。以下代码适用于字符串资源:
<Button Content="{x:Static local:Properties.MyResources.ButtonText}" />
然而,同样不适用于图像。假设我将图像 eflag.bmp 作为名为 Flag 的资源添加到资源中,我希望能够执行以下操作:
<Image Source="{x:Static local:Properties.MyResources.Flag}" />
请注意以下替代方法:
<Image Source="/MyNamespace;component/Resources/eflag.bmp" />
在这种情况下不能使用,因为它无法处理本地化。该问题可以使用后面的代码解决,但我正在寻找基于 XAML 的解决方案。
最佳答案
将您的 x:Static
转换为 Binding.Source
并添加一个 Converter
执行 Bitmap to ImageSource 。
Source="{Binding Source={x:Static local:Properties.MyResources.Flag},
Converter={StaticResource BitmapToImageSourceConverter}}"
或者,您可以使转换器成为自定义 markup extension ,它采用
Bitmap
并在 ImageSource
中返回 ProvideValue
。Source="{me:BitmapToImageSource {x:Static local:Properties.MyResources.Flag}}"
关于wpf - 使用 XAML 绑定(bind)到添加到 resx 文件的图像的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8062221/