Файл изображения заблокирован после загрузки в WPF - PullRequest
5 голосов
/ 19 августа 2011

Я читаю мой источник изображений WPF следующим образом:

VB

Dim bmi As BitmapImage = New BitmapImage
bmi.BeginInit
bmi.CacheOption = BitmapCacheOption.None
bmi.CreateOptions = BitmapCreateOptions.IgnoreImageCache
bmi.UriSource = New Uri(input.FullName, UriKind.Absolute)
bmi.EndInit

C #

BitmapImage bmi = new BitmapImage();
bmi.BeginInit();
bmi.CacheOption = BitmapCacheOption.None;
bmi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bmi.UriSource = new Uri(input.FullName,  UriKind.Absolute);
bmi.EndInit();

Это работает так, как должно до этого момента. Но пользователь может обновить изображение, скопировав файл. Тогда я хочу обновить изображение. Но файл «MyFileName» заблокирован, и когда я хочу перезаписать его, он выдает ошибку, что он уже используется и заблокирован.

Но подождите, я искал здесь решение и получил его:

bmi.cachoption = OnLoad

был ключ ... НО !! теперь изображение всегда старое и не обновляется до нового файла. Как очистить этот кеш?

В VB.Net я создал System.Drawing.Bitmap из потока. Как это сделать лучше всего в WPF?

Привет

1 Ответ

7 голосов
/ 19 августа 2011

у длва был хороший совет. Здесь вы видите опцию кэширования, которая должна ее решить: Проблемы с перезаписью (повторным сохранением) изображения, когда оно было установлено в качестве источника изображения

imgTemp.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...