无心间看到这个需求,查阅了相关文章,有两篇不错的博客给出了解决方案,地址以下:html
主要使用的接口:spa
Silverlight 平台:下咱们使用 WriteableBitmap 类来渲染 UI 到图片。经过 Render 方法便可生成图片。这种方法不只能够渲染某个控件,同时能够建立整个页面。只须要把根节点赋值给构造函数便可。code
// render element to image (Silverlight)
var img = new WriteableBitmap(element, null);
WPF 平台:下咱们能够使用RenderTargetBitmap 类来渲染UI到图片。代码以下:orm
// render element to image (WPF)
RenderTargetBitmap rtbmp = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Default);
rtbmp.Render(element);
WinRT 平台:使用的方法相同,但参数不一样,代码以下:htm
// render element to image (WinRT)
var renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(element);
保存图片:
RenderTargetBitmap rtb = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32); rtb.Render(cir); PngBitmapEncoder png = new PngBitmapEncoder(); png.Frames.Add(BitmapFrame.Create(rtb)); using (Stream fs = File.Create(@"r:\test.png")) { png.Save(fs); }