Под категорией "ограничения технологии":
Я получил требование иметь кнопку скриншота в моем приложении, которая сделает скриншот и запустит диалоговое окно принтера.Справедливо.Мой код достигает этого.Я просто беру свое окно и использую RenderTargetBitmap для рендеринга окна.
Однако теперь в требовании говорится, что оно должно включать весь контент, который скрыт за полосами прокрутки.Это означает, что на скриншоте приложение должно выглядеть «растянутым», чтобы исключить полосы прокрутки и показать все данные.Например, если существует большой список или сетка данных, все данные должны быть видны.
Помня о том, что WPF может виртуализировать, а не отображать вещи, которые не отображаются, есть ли способ, которым я могу достичьэто требование?Есть ли возможность визуализировать визуальное дерево в отдельном бесконечном пространстве и сделать там скриншот?Что-то еще?
В ответ на комментарии:
Кнопка снимка экрана находится на внешней оболочке, которая содержит только меню.Внутри этой оболочки может быть размещено любое из 800+ представлений.Эти представления могут содержать сетки данных, списки, большие формы, состоящие из текстовых полей ... что угодно.Невозможно определить, что находится «внутри», не обходя визуальное дерево.
Запрошенная функциональность аналогична печати веб-страницы в браузере в формате PDF.Это также даст вам весь DOM вместо того, что вы видите в ограниченном представлении браузера.