很多時候,我們會使用圖片來裝飾UI,比如作為控件背景等。
而這些圖片可以分為兩種形式,即存在于本地文件系統中的圖片和存在于內存中的圖片
對于這兩種形式的圖片,在WPF中,使用方法不同,下面主要說明針對這兩種形式圖片的使用方法
一、存在于本地文件系統中的圖片文件
對于此類圖片,使用非常簡單,在xaml中直接指定路徑即可,如:
1
<Button>
2
????<Button.Background>
3
????????<ImageBrush?ImageSource="bg.jpg"/>
4
????</Button.Background>
5
</Button>
對應的的C#代碼為
1
ImageBrush?imageBrush?=?new?ImageBrush();
2
imageBrush.ImageSource?=?new?BitmapImage(new?Uri("bg.jpg",?UriKind.Relative));
3
button.Background?=?imageBrush;
其中imageBrush.ImageSource的類型為ImageSource,而ImageSource是個抽象類,
因此我們不能直接使用它,而是使用它的子類來代替,查閱MSDN,可以看到它們的繼承關系:
System.Windows.Media.ImageSource
???System.Windows.Media.DrawingImage?
??????System.Windows.Media.Imaging.BitmapSource
二、存在于內存中的圖片
?對于只存在于內存中的圖片,用以上方法就顯得無能為力了,我們應該另尋他法,下面介紹一種方法:
先看代碼:
1
//此處圖片從文件中讀入用以模擬內存中的圖片
2
System.Drawing.Bitmap?bitmap?=?new?System.Drawing.Bitmap("bg.jpg");
3
MemoryStream?stream?=?new?MemoryStream();
4
bitmap.Save(stream,?System.Drawing.Imaging.ImageFormat.Png);
5
ImageBrush?imageBrush?=?new?ImageBrush();
6
ImageSourceConverter?imageSourceConverter?=?new?ImageSourceConverter();
7
8
imageBrush.ImageSource?=?(ImageSource)imageSourceConverter.ConvertFrom(stream);
9
button.Background?=?imageBrush;
其中bitmap即是存在于內存中的Bitmap類型圖片,此處使用直接加載本地圖片文件模擬。
步驟是先將它保存到流中,再使用ImageSourceConverter?類的ConvertFrom方法從流中得到我們需要的圖片
OK,本文到此結束,以上方法都是自己在使用中探索所得,如果有更好的方法,本人非常愿意和各位交流。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
