我的资源中有一个Image我希望根据输入文本字符串显示我正在使用转换器,实现它的方法是什么,因为它没有在我的应用程序中显示。
在我的转换器EstateCodetoEstateImageConverter中我有
return Resources.Customer1EstateHeaderImage;
在我的XAML中我有
<Image Source="{Binding EstateSheet.EstateCode, Converter={StaticResource EstateCodetoEstateImageConverter1}}" Stretch="Fill" Width="189" Height="112" />
我的理解是绑定到源需要文件路径名而不是实际资源,我应该怎么做。
答案 0 :(得分:2)
在典型的WPF应用程序中,您不会将图像放入Resources.resx
并通过Resources
类访问它们。相反,您只需将图像文件添加到Visual Studio项目(可能在名为Images的文件夹中),并将其Build Action
设置为Resource
。现在,您可以通过Pack URI访问它们,转换器的Convert方法可能如下所示:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
object result = null;
switch ((EstateCode)value)
{
case EstateCode.EstateCode1:
result = new BitmapImage(new Uri("pack://application:,,,/Images/Estate1.jpg"));
break;
case EstateCode.EstateCode2:
result = new BitmapImage(new Uri("pack://application:,,,/Images/Estate2.jpg"));
break;
}
return result;
}