![](/img/trans.png)
[英]Cannot implicitly convert type 'System.Drawing.Image' to 'System.Drawing.Bitmap'`
[英]WPF cannot implicitly convert system.drawing.bitmap to media.brush
我想在我的WPF應用程序中手動更改按鈕的背景。
我有一個導入到資源中的圖像,我想這樣做:
MyButton.Background = MyProject.Properties.Resources.myImage;
但是我得到了錯誤:
無法將system.drawing.bitmap隱式轉換為media.brush
我怎樣才能做到這一點??
然后使用ImageBrush
,如下所示:
MyButton.Background = new ImageBrush(...);
(或者,也許將畫筆放入資源中...)
更新
您可以找到如何從easilly位圖創建imageSource。 例如, 這里 。 喜歡:
var bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(MyProject.Properties.Resources.myImage.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
MyButton.Background = new ImageBrush(bitmapSource);
在WPF應用程序中,通常不像在WinForms中那樣添加圖像資源。
而是像其他文件一樣,將圖像文件直接添加到Visual Studio項目中。 如果有多個圖像,將它們放置在項目的子文件夾中(例如稱為“圖像”)可能是有意義的。 該文件的“ Build Action
必須設置為“ Resource
(這是圖像文件的默認設置)。
現在,您可以從Pack URI到該文件創建BitmapImage
。
最后,從BitmapImage
創建一個ImageBrush
來設置Background
屬性。
var uri = new Uri("pack://application:,,,/images/myImage.jpg");
var image = new BitmapImage(uri);
MyButton.Background = new ImageBrush(image);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.