截取silverlight 5/xna的截图

Flo*_*oen 7 silverlight xna screenshot

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

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

WriteableBitmap bmp = new WriteableBitmap(LayoutRoot, null); 
testImage.Source = bmp; 
Run Code Online (Sandbox Code Playgroud)

LayoutRoot是silverlight页面上的父控件,testImage只是页面上的Image控件,用于查看屏幕截图是否正确.

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

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

我很感激任何帮助.

映入眼帘,

弗洛里斯

are*_*mes 1

一种可能性是将屏幕绘制到 RenderTarget2D 中,然后使用 SaveAsPng 方法,如下所示:

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