實作 - WPF 載入圖片

[實作] WPF 載入圖片

因為工作上的需求,需要動態載入圖片,於是就來學習下在 WPF 中動態載入圖片的方法

靜態載入圖片

  • 不需要一直讀取的圖片可以用這個方法就好
1
<Image Source="pack://application:,,,//MyProject;component/Resource/Images/MyImage.png"/>

使用 BitmapImage 動態載入圖片

  • BitmapCacheOption.OnLoad 很重要,他能預先載入圖片資源到記憶體中,就部會占用到原本圖片的資源了,而且關閉資料流的話,圖片也不會消失

使用路徑

1
2
3
4
5
6
7
string imagePath = $"pack://application:,,,/MyProject;component/Resource/Images/MyImage.png";

BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = new Uri(imagePath);
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();

使用檔案流

1
2
3
4
5
6
7
8
9
10
string imagePath = $"C:\MyProject\Resource\Images\MyImage.png";
FileStream fileStream = new FileStream(FilePath, FileMode.Open);

BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = fileStream;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();

fileStream.Close();

以上就是簡略的學習實作,結果做出來後又不需要載入圖片了,需求就是不斷的變動呢 ( 笑 )

tags: 實作 WPF C# 載入圖片
Author: Kenny Li
Link: https://kennyliblog.nctu.me/2021/01/16/WPF-load-image/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.