[C#][WPF]Image控制項載入圖檔的最佳作法(使用BitmapImage)

  • 4256
  • 0
  • 2016-02-02

Image控制項載入圖檔後,不會占用原始圖檔的資源。

參考網路文章,文章來源:仙人的設計之路

一般寫法:

Image1.Source = new BitmapImage(new Uri(@"C:\p001.jpg", UriKind.Absolute));

缺點:圖片檔案會被程式鎖住,使其他程式無法開啟,本身程式要重新載入也會有錯誤產生。

 

最佳寫法:

FileStream fstream = new FileStream(@"C:\p001.jpg", FileMode.Open);
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = fstream;
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.EndInit();
fstream.Close();

Image1.BeginInit();
Image1.Source = bitmap;
Image1.EndInit();