我有一个图像控件,其源图像位于我的c盘中。每当我尝试删除原始图像以动态更改原始图像时,我会收到一条消息,说明该图像正被另一个进程使用。如何从图像控件中释放图像以便能够将其删除。
我试过这个变种:
string path = ((BitmapImage)img.Source).UriSource.LocalPath;
img.SetValue(System.Windows.Controls.Image.SourceProperty, null);
File.Delete(path);
和
string path = ((BitmapImage)img.Source).UriSource.LocalPath;
img.Source = null;
File.Delete(path)
但这不起作用......
答案 0 :(得分:1)
尝试通过流源属性设置位图图像。这样,自从您通过流加载文件后,应用程序就不会锁定文件。
答案 1 :(得分:0)
//此功能可让您从文件加载图像并释放图像
BitmapImage loadPhoto(string path)
{
BitmapImage bmi = new BitmapImage();
bmi.BeginInit();
bmi.CacheOption = BitmapCacheOption.OnLoad;
bmi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bmi.UriSource = new Uri(path);
bmi.EndInit();
return bmi;
}