2012-03-30 3 views
7

Я пытаюсь сделать снимок экрана подкласса XNA DrawingSurface из приложения silverlight 5. Это приложение sl будет работать на странице aspx.Сделайте скриншот с silverlight 5/xna

Вот что я пытался до сих пор без особого успеха:

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

с LayoutRoot является родительским элементом управления на странице SilverLight и testImage это просто контроль изображения на странице, чтобы увидеть, если скриншот правильно.

Это прекрасно отображает все элементы управления silverlight на странице, но часть чертежной поверхности остается пустой. Другими словами, содержимое XNA не отображается в изображение.

Я также попытался отобразить контент XNA в RenderTarget2D, но версия 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

Бесполезный ответ для окон. Вопрос в том, как получить растровое изображение в SL5 для окон? Метод SaveAsPng недоступен! Есть идеи? –

Смежные вопросы