WPF将控件导出为图片

WPF将控件导出为图片,主要是使用RenderTargetBitmap 类。

下面是一段示例代码:

RenderTargetBitmap targetBitmap = new RenderTargetBitmap((int)this.exportGrid.ActualWidth, (int)this.exportGrid.ActualHeight, 96d, 96d, PixelFormats.Default);
targetBitmap.Render(this.exportGrid);
PngBitmapEncoder saveEncoder = new PngBitmapEncoder();
saveEncoder.Frames.Add(BitmapFrame.Create(targetBitmap));
System.IO.FileStream fs = System.IO.File.Open(fileName, System.IO.FileMode.OpenOrCreate);
saveEncoder.Save(fs);

首先是构造一个RenderTargetBitmap 类的实例,RenderTargetBitmap 类的作用是Visual 对象转换为位图。Visual 类为WPF中的呈现提供支持,其中包括命中测试、坐标转换和边界框计算。下图是WPF中的可视对象层次结构:

可以看出Visual 类是FrameworkElement 的基类。
然后将所要导出为图片的控件作为Render 函数的参数,表示要将改控件转换为图片。下面要解决的就是如何保存为图片文件了。

根据所要保存的图片的格式,可以使用不同的编码器。如BmpBitmapEncoderBmpBitmapEncoderJpegBitmapEncoder等,它们都是BitmapEncoder 类的子类。如下图是它们的继承层次机构图:

 

在上面的例子中使用的是PngBitmapEncoder 类,将控件转换好是位图作为图片中的一帧加人。BitmapFrame类表示的是被编码器所接受的图像数据。之后可以调用编码器的Save 函数,保存为图片。


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值