我有一个固定文档,其中我有一个图像。图像的source-property绑定到文档的datacontext中的字节数组(从数据库中读取)。当我将鼠标移动到图像上时,我得到一个filenotfoundexception。
看起来documentviewer试图从工作目录中名为“image”的文件加载有关渲染图像的其他信息,当然这个文件不存在。
有人知道如何禁用此行为吗?
答案 0 :(得分:0)
您可以使用以下转换器从字节数组创建BitmapImage:
public class BytesToBitmapConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var bytes = (byte[])value; // make sure it is an array beforehand
using (var ms = new System.IO.MemoryStream(bytes))
{
var image = new BitmapImage();
image.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad;
image.StreamSource = ms;
image.EndInit();
return image;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
然后在你的xaml中你会像这样使用它:
<Image Source="{Binding propertyNameHere, Converter={StaticResource converterName}}"/>