Rad*_* M. 5 wpf resources image
我的WPF应用程序包含一个资源文件MyResources.resx,其中包含多个字符串和图像.因为应用程序需要本地化,所以我对全局化资源的所有引用必须通过自动生成的MyResources类的命名属性来完成.以下代码适用于字符串资源:
<Button Content="{x:Static local:Properties.MyResources.ButtonText}" />
Run Code Online (Sandbox Code Playgroud)
然而,这对图像不起作用.假设我有一个图像eflag.bmp作为名为Flag的资源添加到资源中,我希望能够做到这样的事情:
<Image Source="{x:Static local:Properties.MyResources.Flag}" />
Run Code Online (Sandbox Code Playgroud)
请注意以下替代方法:
<Image Source="/MyNamespace;component/Resources/eflag.bmp" />
Run Code Online (Sandbox Code Playgroud)
在这种情况下无法使用,因为它无法处理本地化.使用代码可以解决问题,但我正在寻找基于XAML的解决方案.
把你x:Static变成一个Binding.Source和增加Converter其做位图的ImageSource.
Source="{Binding Source={x:Static local:Properties.MyResources.Flag},
Converter={StaticResource BitmapToImageSourceConverter}}"
Run Code Online (Sandbox Code Playgroud)
或者,您可以将转换器设置为自定义标记扩展,该扩展需要a Bitmap并返回ImageSourcein ProvideValue.
Source="{me:BitmapToImageSource {x:Static local:Properties.MyResources.Flag}}"
Run Code Online (Sandbox Code Playgroud)