我有一个页面,我想在控件模板中显示图像。为此,我只获得要显示的图像名称。所以我使用转换器返回BitmapImage,如下所示:
return new BitmapImage(new Uri(value.ToString(), UriKind.RelativeOrAbsolute));
在XAML绑定中我有:
Image Source="{Binding ThumbNail,Converter={StaticResource MapImagePath}}"/>
由于某些原因,我根本无法看到图像。
我已将图片扩展名更改为.jpeg但仍然无效。
我做错了什么或建议我,如果我错了。 感谢。
答案 0 :(得分:1)
修改转换器,使其返回BitmapImage
的实例。您的转换器当前正在返回字符串或Uri,但Source
属性的实际类型为ImageSource
。
将字符串转换为BitmapImage
是XamlParser为我们所做的一些魔术,但是当我们使用转换器提供值时,我们需要为其提供正确的类型。
答案 1 :(得分:0)
您可以尝试使用ImageFailed事件来检查加载图像时是否抛出任何异常。如果在从Internet加载图像时出现任何网络问题,通常会获得AG_E_NETWORK_ERROR。
我从文件系统运行Silverlight应用程序时遇到了这个问题,这是使用内置Web服务器在Visual Studio 2010中的默认设置。我将托管Web应用程序移动到本地IIS服务器,然后图像可见。
答案 2 :(得分:0)
首先将您的图片属性更改为内容。[右键单击您的图片,转到属性并将构建操作从资源更改为内容
现在假设我们需要“/Resources/Images/1.png”文件。
在转换器中编写类似下面的代码。
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
BitmapImage bitmap = new BitmapImage();
Uri uri = new Uri(@"Resources/Images/1.png", UriKind.Relative);
bitmap .SetSource(Application.GetResourceStream(uri).Stream);
return bitmap ;
}