簡體   English   中英

WPF無法將system.drawing.bitmap隱式轉換為media.brush

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM