2012-03-30 20 views
7

मैं एक चांदी के प्रकाश 5 आवेदन के भीतर से एक उपclassed XNA DrawingSurface तत्व का एक स्क्रीनशॉट लेने की कोशिश कर रहा हूं। यह एसएल ऐप एएसपीएक्स पेज के अंदर चलाएगा।चांदी की रोशनी के साथ एक स्क्रीनशॉट लें 5/xna

यहाँ मैं सफलता के बिना अब तक की कोशिश की है है:

WriteableBitmap bmp = new WriteableBitmap(LayoutRoot, null); 
testImage.Source = bmp; 
LayoutRoot Silverlight पृष्ठ पर माता पिता के नियंत्रण किया जा रहा है और testImage पृष्ठ पर सिर्फ एक छवि नियंत्रण करता है, तो स्क्रीनशॉट सही है या नहीं करने के लिए है के साथ

यह पृष्ठ ठीक पर सभी Silverlight नियंत्रण प्रस्तुत करना होगा, लेकिन drawingsurface हिस्सा खाली रहता है। दूसरे शब्दों में एक्सएनए सामग्री छवि में प्रस्तुत नहीं की जाती है।

मैं भी एक RenderTarget2D को XNA सामग्री रेंडर करने की कोशिश की है, लेकिन लक्ष्य प्रस्तुत करना का Silverlight संस्करण डेटा को बचाने के लिए किसी भी तरीकों के लिए प्रतीत नहीं होता। मैंने कुछ WP7 उदाहरण देखा जो SaveAsJpeg() नामक एक विधि का उपयोग करते थे, लेकिन ऐसा लगता है कि कक्षा के SL5 संस्करण में उपलब्ध नहीं है।

मैं इसके साथ किसी भी मदद की सराहना करता हूं।

स्वागत करती है,

फ्लोरिस

+0

और वर्ग Texture2D कुछ विधि बचाना है? – EdgarT

उत्तर

1

एक संभावना यह एक RenderTarget2D में अपनी स्क्रीन आकर्षित और फिर विधि SaveAsPng उपयोग करने के लिए होगा:

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

विंडोज़ के लिए बेकार जवाब। प्रश्न यह है कि विंडोज़ के लिए एसएल 5 में बिटमैप कैसे प्राप्त करें? SaveAsPng विधि उपलब्ध नहीं है! कोई विचार? –