【问题标题】:Convert a Resource Image into Image Brush - c#将资源图像转换为图像画笔 - c#
【发布时间】:2013-04-20 21:15:25
【问题描述】:

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

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

【问题讨论】:

  • 您是在使用数据绑定(可能与 MVVM 一起使用)还是要将其附加到代码隐藏中?

标签: c# image brush


【解决方案1】:

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

BitmapImage img; 

// get bitmapimage from resources and assign to img

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

myControl.Background = brush;

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

【讨论】:

    【解决方案2】:

    来自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

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 2012-02-01
      • 1970-01-01
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多