Как обновить привязку файла изображения к управлению изображением?
Мое приложение включает в себя элемент управления 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;