在WPF中加载后图像文件被锁定

gol*_*gel 5 .net wpf image file locked

我正在读这样的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
Run Code Online (Sandbox Code Playgroud)

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();
Run Code Online (Sandbox Code Playgroud)

到目前为止,它的工作方式应该如此.但是用户可以通过复制文件来更新图像.然后我想刷新图像.但是文件"MyFileName"被锁定,当我想要覆盖它时,它会抛出一个错误,它已经被使用并被锁定.

但是等等,我在这里寻找解决方案,我得到了它:

bmi.cachoption = OnLoad
Run Code Online (Sandbox Code Playgroud)

是关键...但是!现在,图像始终是旧图像,并且不会更新到新文件.如何清除此缓存?

在VB.Net中,我从流中创建了一个System.Drawing.Bitmap.如何在WPF中做到最好?

问候

Nas*_*aer 7

dlev有一个很好的建议.在这里,您可以看到应该解决的缓存选项:将图像设置为图像源时覆盖(重新保存)图像时出现问题

imgTemp.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
Run Code Online (Sandbox Code Playgroud)