0

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

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

4

2 回答 2

1

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

BitmapImage img; 

// get bitmapimage from resources and assign to img

ImageBrush brush = new ImageBrush();
brush.ImageSource = img;

myControl.Background = brush;

如果您使用数据绑定,则需要实现 ValueConverter

于 2013-04-20T13:13:01.740 回答
0

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

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

“但是,此解决方案不会释放句柄的内存。有关如何消除内存泄漏的信息,请参阅WPF CreateBitmapSourceFromHBitmap() 内存泄漏

于 2013-04-20T13:15:25.933 回答