很多時(shí)候,我們會(huì)使用圖片來裝飾UI,比如作為控件背景等。
而這些圖片可以分為兩種形式,即存在于本地文件系統(tǒng)中的圖片和存在于內(nèi)存中的圖片
對(duì)于這兩種形式的圖片,在WPF中,使用方法不同,下面主要說明針對(duì)這兩種形式圖片的使用方法
一、存在于本地文件系統(tǒng)中的圖片文件
對(duì)于此類圖片,使用非常簡(jiǎn)單,在xaml中直接指定路徑即可,如:
1
<Button>
2
????<Button.Background>
3
????????<ImageBrush?ImageSource="bg.jpg"/>
4
????</Button.Background>
5
</Button>
對(duì)應(yīng)的的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是個(gè)抽象類,
因此我們不能直接使用它,而是使用它的子類來代替,查閱MSDN,可以看到它們的繼承關(guān)系:
System.Windows.Media.ImageSource
???System.Windows.Media.DrawingImage?
??????System.Windows.Media.Imaging.BitmapSource
二、存在于內(nèi)存中的圖片
?對(duì)于只存在于內(nèi)存中的圖片,用以上方法就顯得無能為力了,我們應(yīng)該另尋他法,下面介紹一種方法:
先看代碼:
1
//此處圖片從文件中讀入用以模擬內(nèi)存中的圖片
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即是存在于內(nèi)存中的Bitmap類型圖片,此處使用直接加載本地圖片文件模擬。
步驟是先將它保存到流中,再使用ImageSourceConverter?類的ConvertFrom方法從流中得到我們需要的圖片
OK,本文到此結(jié)束,以上方法都是自己在使用中探索所得,如果有更好的方法,本人非常愿意和各位交流。
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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