2012-03-30 11 views
7

sto cercando di prendere uno screenshot di un elemento di XNA DrawingSurface sottoclasse dall'interno di un'applicazione Silverlight 5. Questa app sl verrà eseguita all'interno di una pagina aspx.Prendere uno screenshot con Silverlight 5/XNA

Ecco quello che ho provato finora senza successo:

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

con LayoutRoot essendo il controllo padre sulla pagina Silverlight e TestImage è solo un controllo Image nella pagina per vedere se la schermata è corretto.

Questo renderà tutti i controlli Silverlight su pagina bene, ma la parte drawingsurface rimane vuoto. In altre parole, il contenuto XNA non viene reso nell'immagine.

Ho anche provato a rendere il contenuto XNA a un RenderTarget2D, ma la versione silverlight del target di rendering non sembra avere alcun metodo per salvare i dati. Ho visto alcuni esempi di WP7 che utilizzavano un metodo chiamato SaveAsJpeg(), ma non sembra essere disponibile nella versione SL5 della classe.

Apprezzerei qualsiasi aiuto con questo.

saluta,

Floris

+0

E i Texture2D classe hanno qualche Salva metodo? – EdgarT

risposta

1

Una possibilità potrebbe essere quella di disegnare il vostro schermo in un RenderTarget2D e quindi utilizzare il metodo SaveAsPng come:

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

Risposta inutile per Windows. La domanda è come ottenere bitmap in SL5 per Windows? Il metodo SaveAsPng non è disponibile! Qualche idea? –

Problemi correlati