我正在尝试从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版本的类中似乎没有。
我很感激任何帮助。
映入眼帘,
弗洛
答案 0 :(得分:1)
一种可能性是将您的屏幕绘制到RenderTarget2D中,然后使用SaveAsPng方法:
using (Stream stream = File.OpenWrite("filename.png"))
{
renderTarget2D.SaveAsPng(stream, renderTarget2D.Width, renderTarget2D.Height);
}