wpf documentviewer在鼠标悬停图像上抛出异常

时间:2017-09-15 12:24:36

标签: wpf image exception mouse documentviewer

我有一个固定文档,其中我有一个图像。图像的source-property绑定到文档的datacontext中的字节数组(从数据库中读取)。当我将鼠标移动到图像上时,我得到一个filenotfoundexception。

看起来documentviewer试图从工作目录中名为“image”的文件加载有关渲染图像的其他信息,当然这个文件不存在。

有人知道如何禁用此行为吗?

1 个答案:

答案 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}}"/>