ImageSource的使用

不少時候,咱們會使用圖片來裝飾UI,好比做爲控件背景等。
而這些圖片能夠分爲兩種形式,即存在於本地文件系統中的圖片和存在於內存中的圖片
對於這兩種形式的圖片,在WPF中,使用方法不一樣,下面主要說明針對這兩種形式圖片的使用方法
1、存在於本地文件系統中的圖片文件
對於此類圖片,使用很是簡單,在xaml中直接指定路徑便可,如: windows

 

1<Button>
2 <Button.Background>
3 <ImageBrush ImageSource="bg.jpg"/>
4 </Button.Background>
5</Button>
對應的的C#代碼爲 orm

 

1ImageBrush imageBrush = new ImageBrush();
2imageBrush.ImageSource = new BitmapImage(new Uri("bg.jpg", UriKind.Relative));
3button.Background = imageBrush;
其中imageBrush.ImageSource的類型爲ImageSource,而ImageSource是個抽象類,
所以咱們不能直接使用它,而是使用它的子類來代替,查閱MSDN,能夠看到它們的繼承關係:
System.Windows.Media.ImageSource
System.Windows.Media.DrawingImage
System.Windows.Media.Imaging.BitmapSource
2、存在於內存中的圖片
對於只存在於內存中的圖片,用以上方法就顯得無能爲力了,咱們應該另尋他法,下面介紹一種方法:
先看代碼: 繼承

 

1//此處圖片從文件中讀入用以模擬內存中的圖片
2System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap("bg.jpg");
3MemoryStream stream = new MemoryStream();
4bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
5ImageBrush imageBrush = new ImageBrush();
6ImageSourceConverter imageSourceConverter = new ImageSourceConverter();
7
8imageBrush.ImageSource = (ImageSource)imageSourceConverter.ConvertFrom(stream);
9button.Background = imageBrush; 圖片

 

其中bitmap便是存在於內存中的Bitmap類型圖片,此處使用直接加載本地圖片文件模擬。
步驟是先將它保存到流中,再使用ImageSourceConverter 類的ConvertFrom方法從流中獲得咱們須要的圖片 內存

相關文章
相關標籤/搜索