我正在阅读我的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中做到最好?
此致
答案 0 :(得分:7)
imgTemp.CreateOptions = BitmapCreateOptions.IgnoreImageCache;