转换资源图像到图像画笔- c#

本文关键字:图像 画笔 资源 转换 | 更新日期: 2023-09-27 18:10:04

我想在运行时改变背景属性,我必须为它设置一个ImageBrush。我已经在我的项目中添加了一些图片作为资源,现在我可以使用它们作为System.Drawing.Bitmap.

如何将System.Drawing.Bitmap转换为ImageBrush ?

转换资源图像到图像画笔- c#

如果您正在使用代码隐藏设置它,您可以这样做:

BitmapImage img; 
// get bitmapimage from resources and assign to img
ImageBrush brush = new ImageBrush();
brush.ImageSource = img;
myControl.Background = brush;

如果你正在使用数据绑定,你需要实现一个ValueConverter

从如何创建ImageBrush从System.Drawing.Image在WPF?:

var bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(),
                                                         IntPtr.Zero,
                                                         Int32Rect.Empty,
                                                         BitmapSizeOptions.FromEmptyOptions()
        );
bitmap.Dispose();
var brush = new ImageBrush(bitmapSource);

"这个解决方案,然而,不释放句柄的内存。有关如何消除内存泄漏的信息,请参阅WPF createbitmapsourcefrombitmap()内存泄漏"