2012-03-30 19 views
7

Estoy tratando de tomar una captura de pantalla de un elemento subcategorizado XNA DrawingSurface dentro de una aplicación Silverlight 5. Esta aplicación sl se ejecutará dentro de una página aspx.Tome una captura de pantalla con Silverlight 5/xna

Esto es lo que he probado hasta ahora sin éxito:

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

con LayoutRoot siendo el control de los padres en la página de Silverlight y TestImage es sólo un control de imagen en la página para ver si la pantalla es correcta.

Esto hará que todos los controles Silverlight de la página estén bien, pero la parte de la superficie del dibujo permanece vacía. En otras palabras, el contenido de XNA no se representa en la imagen.

También intenté renderizar el contenido de XNA en un RenderTarget2D, pero la versión silverlight del objetivo de renderizado no parece tener ningún método para guardar los datos. Vi algunos ejemplos de WP7 que usaban un método llamado SaveAsJpeg(), pero que no parece estar disponible en la versión SL5 de la clase.

Agradeceria cualquier ayuda con esto.

saluda,

Floris

+0

Y los Texture2D clase tienen algún método Save? – EdgarT

Respuesta

1

Una posibilidad sería la de señalar a su pantalla en una RenderTarget2D y luego usar el método SaveAsPng como:

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

Respuesta inútil para Windows. La pregunta es cómo obtener un mapa de bits en SL5 para Windows. ¡El método SaveAsPng no está disponible! ¿Algunas ideas? –

Cuestiones relacionadas