我想在运行时更改Background属性,我必须为它设置ImageBrush。 我在项目中添加了一些图像作为资源,现在我可以将它们用作System.Drawing.Bitmap。
如何将System.Drawing.Bitmap转换为ImageBrush?
答案 0 :(得分:1)
如果您使用后面的代码来设置它,您可以这样做:
BitmapImage img;
// get bitmapimage from resources and assign to img
ImageBrush brush = new ImageBrush();
brush.ImageSource = img;
myControl.Background = brush;
如果您正在使用数据绑定,则需要实现IValueConverter
答案 1 :(得分:0)
来自How to create ImageBrush from System.Drawing.Image in WPF?:
var bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions()
);
bitmap.Dispose();
var brush = new ImageBrush(bitmapSource);
“但是,此解决方案不会释放句柄的内存。有关如何消除内存泄漏的信息,请参阅WPF CreateBitmapSourceFromHBitmap() memory leak”