将资源图像转换为图像画笔 - c#

时间:2013-04-20 13:08:57

标签: c# image brush

我想在运行时更改Background属性,我必须为它设置ImageBrush。 我在项目中添加了一些图像作为资源,现在我可以将它们用作System.Drawing.Bitmap。

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

2 个答案:

答案 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