使用C#/ XAML在地铁样式应用程序中将画布保存为图像

时间:2012-06-28 07:30:35

标签: c# canvas windows-8 microsoft-metro windows-runtime

我正在使用C#/ XAML开发类似地铁风格的应用程序。我想保存画布上绘制的任何内容作为图像。我已经检查了这个解决方案,但它没有帮助我。

Save canvas to bitmap http://blogs.msdn.com/b/saveenr/archive/2008/09/18/wpf-xaml-saving-a-window-or-canvas-as-a-png-bitmap.aspx

那么如何将画布内容保存为图像?请帮我编写示例代码。

4 个答案:

答案 0 :(得分:1)

对于Windows 8.1,Sascha接受的答案不再适用。有一个新的RenderTargetBitmap类,它允许将渲染的XAML转换为位图。

请参阅:http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.media.imaging.rendertargetbitmap.aspx

但是我似乎无法呈现XAML已折叠或当前不在屏幕上。任何帮助都将不胜感激!

答案 1 :(得分:0)

其他xaml框架(如Silverlight和WP7)中的标准方法是使用WriteableBitmap,但WinRT中的版本没有带有xaml元素的构造函数,这使我相信它目前无法对抗最新的API。

抱歉,我无法提供更多帮助/

答案 2 :(得分:0)

一种解决方法是将Direct2D与DirectWrite配合使用。它有点涉及,但我可能会在某个时候提供一个库。

答案 3 :(得分:0)

目前似乎不支持开箱即用,就像我们习惯使用WPF一样:

http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/dd66c749-efed-4b55-a716-e0aa3a637d28

在执行HTML5 / Javascript Metro应用程序时,您可以这样做:

http://social.msdn.microsoft.com/Forums/en-US/winappswithhtml5/thread/cf8c17dc-68d4-4777-951f-bb7f0665bd06