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



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

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

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

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()内存泄漏"

最新更新