C# WPF无法将system.drawing.bitmap隐式转换为media.brush
我想在我的WPF应用程序中手动更改按钮的背景 我已将图像导入到我的资源中,我希望执行以下操作:C# WPF无法将system.drawing.bitmap隐式转换为media.brush,c#,wpf,xaml,C#,Wpf,Xaml,我想在我的WPF应用程序中手动更改按钮的背景 我已将图像导入到我的资源中,我希望执行以下操作: MyButton.Background = MyProject.Properties.Resources.myImage; 但我得到了一个错误: 无法将system.drawing.bitmap隐式转换为media.brush 我该怎么做???您应该先阅读有关画笔的内容 然后使用ImageBrush,如下所示: MyButton.Background = new ImageBrush(...);
MyButton.Background = MyProject.Properties.Resources.myImage;
但我得到了一个错误:
无法将system.drawing.bitmap隐式转换为media.brush
我该怎么做???您应该先阅读有关画笔的内容 然后使用
ImageBrush
,如下所示:
MyButton.Background = new ImageBrush(...);
(或者,也许,把刷子放到资源中……)
更新
您可以轻松找到如何从位图创建imageSource。例如比如:
在WPF应用程序中,通常不会像在WinForms中那样添加图像资源 与其他文件一样,您可以直接将图像文件添加到VisualStudio项目中。如果有多个图像,将它们放在项目的子文件夹(例如称为“图像”)中可能是有意义的。该文件的
生成操作
必须设置为资源
(这是图像文件的默认设置)
现在,您可以创建一个位图图像
,从一个文件到该文件
最后,从BitmapImage
创建ImageBrush
,以设置Background
属性
var uri = new Uri("pack://application:,,,/images/myImage.jpg");
var image = new BitmapImage(uri);
MyButton.Background = new ImageBrush(image);
背景是错误的属性,你需要像BackgroundImage@CSharpie你错了,
Background
是正确的属性。您需要将其设置为ImageBrush
。哦,好的。今天学到了一些新东西:)这不起作用,因为myImage
属于System.Drawing.Bitmap
类型。我添加了一种将位图转换为源位图的方法
var uri = new Uri("pack://application:,,,/images/myImage.jpg");
var image = new BitmapImage(uri);
MyButton.Background = new ImageBrush(image);