WPF将控件导出为图片

来源:互联网 发布:想开淘宝店取名字好呢 编辑:程序博客网 时间:2024/05/18 02:41

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 函数,保存为图片。


0 0
原创粉丝点击