转换资源图像到图像画笔- c#
本文关键字:图像 画笔 资源 转换 | 更新日期: 2023-09-27 18:10:04
我想在运行时改变背景属性,我必须为它设置一个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()内存泄漏"