Nullreference Q&A 编程技术问答社区
第一次访问本站?请查看 FAQ!
x
0 投票
77 浏览

WPF 控件怎么保存成 PNG 图片?

最新提问 6月 21, 2016 分类:WPF | 用户: goc88 | 77 浏览

1个回答

0 投票

可以使用 RenderTargetBitmap把 UI 控件保存成图片

public static RenderTargetBitmap GetImage(OverallView view)
{
	Size size = new Size(view.ActualWidth, view.ActualHeight);
	if (size.IsEmpty)
		return null;

	RenderTargetBitmap result = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96, 96, PixelFormats.Pbgra32);

	DrawingVisual drawingvisual = new DrawingVisual();
	using (DrawingContext context = drawingvisual.RenderOpen())
	{
		context.DrawRectangle(new VisualBrush(view), null, new Rect(new Point(), size));
		context.Close();
	}

	result.Render(drawingvisual);
	return result;
}

然后使用 PngBitmapEncoder 保存成图片

public static void SaveAsPng(RenderTargetBitmap src, Stream outputStream)
{
	PngBitmapEncoder encoder = new PngBitmapEncoder();
	encoder.Frames.Add(BitmapFrame.Create(src));

	encoder.Save(outputStream);   
}
最新回答 6月 24, 2016 用户: mc1000