开发者

How to update image file binding to Image control?

开发者 https://www.devze.com 2023-02-18 02:16 出处:网络
My app includes a Image con开发者_JAVA技巧trol which has binding to a disk image file. I some condition, the image file need be updated. But the updating can\'t be done because the image file is open

My app includes a Image con开发者_JAVA技巧trol which has binding to a disk image file. I some condition, the image file need be updated. But the updating can't be done because the image file is open and can not be overwritten. What should I do?


You can try to remove the binding, so the image will not be used by your program than overwrite the image file and than re-add the binding

i'm not sure about this, but it's worth a try


Now my solution is: To use a converter to convert the image path into BitmapImage. in the converter, load the image using a FileStream and copy the data into a MemoryStream and finally close the 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;
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号