2012-03-30 40 views
7

Tôi đang cố chụp ảnh màn hình của phần tử XNA DrawingSurface được phân lớp từ trong ứng dụng Silverlight 5. Ứng dụng sl này sẽ chạy bên trong một trang aspx.Chụp ảnh màn hình với silverlight 5/xna

Đây là những gì tôi đã cố gắng cho đến nay nhưng không thành công:

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

với LayoutRoot là phụ huynh kiểm soát trên trang Silverlight và testImage chỉ là một điều khiển hình ảnh trên trang để xem ảnh chụp màn hình là đúng.

Điều này sẽ hiển thị tất cả các điều khiển màu bạc trên trang tốt, nhưng phần bản vẽ vẫn trống. Nói cách khác, nội dung XNA không được đưa vào hình ảnh.

Tôi cũng đã cố gắng hiển thị nội dung XNA đến RenderTarget2D, nhưng phiên bản Silverlight của mục tiêu hiển thị dường như không có bất kỳ phương pháp nào để lưu dữ liệu. Tôi đã thấy một số ví dụ WP7 sử dụng một phương thức gọi là SaveAsJpeg(), nhưng điều đó dường như không có sẵn trong phiên bản SL5 của lớp.

Tôi sẽ đánh giá cao bất kỳ trợ giúp nào về vấn đề này.

Greets,

Floris

+0

Và Texture2D lớp có một số phương thức Save? – EdgarT

Trả lời

1

Một khả năng sẽ được vẽ màn hình của bạn thành một RenderTarget2D và sau đó sử dụng phương pháp SaveAsPng như:

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

Câu trả lời vô ích cho cửa sổ. Câu hỏi đặt ra là làm thế nào để có được bitmap trong SL5 cho các cửa sổ? Phương thức SaveAsPng không khả dụng! Bất kỳ ý tưởng? –

Các vấn đề liên quan