Как обновить привязку файла изображения к управлению изображением?

Мое приложение включает в себя элемент управления Image, который имеет привязку к файлу образа диска. При некоторых условиях файл изображения необходимо обновить. Но обновление не может быть сделано, потому что файл изображения открыт и не может быть перезаписан. Что я должен делать?

2 ответа

Вы можете попытаться удалить привязку, чтобы изображение не использовалось вашей программой, чем перезаписать файл изображения, а затем повторно добавить привязку.

я не уверен в этом, но стоит попробовать

Теперь мое решение: использовать конвертер для преобразования пути изображения в 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;
Другие вопросы по тегам