如何更新图像文件绑定到Image控件?

时间:2011-03-22 02:51:38

标签: wpf file binding overwrite

我的应用程序包含一个Image控件,它绑定到磁盘映像文件。我有些条件,图像文件需要更新。但无法进行更新,因为图像文件已打开且无法覆盖。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以尝试删除绑定,因此程序不会使用该图像 而不是覆盖图像文件 而不是重新添加绑定

我不确定这一点,但值得一试

答案 1 :(得分:0)

现在我的解决方案是: 使用转换器将图像路径转换为BitmapImage。 在转换器中,使用FileStream加载图像并将数据复制到MemoryStream中,最后关闭FileStream。

        BitmapImage bmp = new BitmapImage();
        bmp.CacheOption = BitmapCacheOption.OnLoad;
        bmp.BeginInit();
        var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
        var memStream = new MemoryStream();
        memStream.SetLength(fileStream.Length);
        fileStream.Read(memStream.GetBuffer(), 0, (int)fileStream.Length);
        memStream.Flush();
        fileStream.Close();
        bmp.StreamSource = memStream;
        bmp.EndInit();
        return bmp;