截取silverlight 5 / xna的截图

时间:2012-03-30 07:34:21

标签: silverlight xna screenshot

我正在尝试从silverlight 5应用程序中截取子类XNA DrawingSurface元素的屏幕截图。这个sl应用程序将在aspx页面内运行。

这是我迄今为止没有成功的尝试:

WriteableBitmap bmp = new WriteableBitmap(LayoutRoot, null); 
testImage.Source = bmp; 

LayoutRoot是silverlight页面上的父控件,testImage只是页面上的一个Image控件,用于查看截图是否正确。

这将使页面上的所有silverlight控件都很好,但是工程图部分仍然是空的。换句话说,XNA内容不会渲染到图像中。

我还尝试将XNA内容渲染为RenderTarget2D,但渲染目标的silverlight版本似乎没有任何方法来保存数据。我看到一些WP7示例使用了一个名为SaveAsJpeg()的方法,但在SL5版本的类中似乎没有。

我很感激任何帮助。

映入眼帘,

弗洛

1 个答案:

答案 0 :(得分:1)

一种可能性是将您的屏幕绘制到RenderTarget2D中,然后使用SaveAsPng方法:

using (Stream stream = File.OpenWrite("filename.png"))
{
renderTarget2D.SaveAsPng(stream, renderTarget2D.Width, renderTarget2D.Height);
}