为了在加载后释放图像文件,您必须通过设置
BitmapCacheOption.OnLoad标志来创建图像。一种实现方法是:
string filename = ...BitmapImage image = new BitmapImage();image.BeginInit();image.CacheOption = BitmapCacheOption.OnLoad;image.UriSource = new Uri(filename);image.EndInit();
尽管该设置
BitmapCacheOption.OnLoad适用于从本地文件Uri加载的BitmapImage,但这在任何地方都没有记载。因此,一种可能更好或更安全的方法是通过设置
StreamSource属性而不是来从FileStream加载图像
UriSource:
string filename = ...BitmapImage image = new BitmapImage();using (var stream = File.OpenRead(filename)){ image.BeginInit(); image.CacheOption = BitmapCacheOption.OnLoad; image.StreamSource = stream; image.EndInit();}


