WPF -- 使用RenderTargetBitmap将Canvas保存为图片
Posted louzi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF -- 使用RenderTargetBitmap将Canvas保存为图片相关的知识,希望对你有一定的参考价值。
在WPF中对控件进行截图是非常方便的,使用RenderTargetBitmap即可实现。但是如果是对Canvas这种类型的容器控件进行截图,截图的范围可能不准。此时可以使用如下方法对Canvas进行截图,方法来自Clemens。
public void WriteToPng(UIElement element, string filename)
{
var rect = new Rect(element.RenderSize);
var visual = new DrawingVisual();
using (var dc = visual.RenderOpen())
{
dc.DrawRectangle(new VisualBrush(element), null, rect);
}
var bitmap = new RenderTargetBitmap(
(int)rect.Width, (int)rect.Height, 96, 96, PixelFormats.Default);
bitmap.Render(visual);
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
using (var file = File.OpenWrite(filename))
{
encoder.Save(file);
}
}
以上是关于WPF -- 使用RenderTargetBitmap将Canvas保存为图片的主要内容,如果未能解决你的问题,请参考以下文章