Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Сделайте снимок экрана с помощью silverlight 5 / xna

Автор вопроса: Floris GroenОтветов: 1

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

Вот что я до сих пор безуспешно пробовал:

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

с LayoutRoot, являющимся родительским элементом управления на странице silverlight, а testImage - это просто элемент управления Image на странице, чтобы проверить правильность снимка экрана.

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

Я также попытался отрендерить содержимое XNA в RenderTarget2D, но версия цели отрисовки silverlight, похоже, не имеет каких-либо методов для сохранения данных. Я видел несколько примеров WP7, в которых использовался метод SaveAsJpeg (), но, похоже, он недоступен в версии класса SL5.

Буду признателен за любую помощь с этим.

Приветствую,

Флорис

  • А у класса Texture2D есть какой-нибудь метод Save? EdgarT 05.09.2012

screenshotsilverlightxna

Ответы

Ответ 1 · рейтинг 1 · ares_games

Одна из возможностей - нарисовать ваш экран в RenderTarget2D, а затем использовать метод SaveAsPng, например:

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы