WPF MVVM绑定图像控件到资源中的图像

3

我有一个资源中的图片,我想根据输入文本字符串显示它,我正在使用转换器,如何实现这一点,因为它没有显示在我的应用程序中。

在我的转换器 EstateCodetoEstateImageConverter 中,我有:

 return  Resources.Customer1EstateHeaderImage;

在我的XAML中,我有以下代码:

   <Image Source="{Binding EstateSheet.EstateCode, Converter={StaticResource EstateCodetoEstateImageConverter1}}" Stretch="Fill" Width="189" Height="112" />

我的理解是,绑定到源需要文件路径名而不是实际资源,我该怎么做呢?

1个回答

4
在典型的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;
}

谢谢,我会尝试一下。 - Oliver
太好了,那个有效了,谢谢。已标记为答案。 - Oliver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接