Используя DrawtoBitmap с перекрывающимися элементами управления и фигурами

Я пытаюсь сделать повторные снимки экрана из одной из моих форм (то есть загрузить форму с конкретными данными, сделать и сохранить снимок экрана, затем загрузить форму с другими данными, сделать еще один снимок экрана и т. Д.).

Форма содержит перекрывающиеся элементы Shape и Control. Когда я вижу форму на своем экране, я получаю правильный порядок z, но на скриншотах порядок z меняется на противоположный.

Я уже нашел некоторые темы на сайте, объясняющие обратный порядок z при использовании метода DrawToBitmap, который я сейчас использую. Я также нашел методы Controls и Shapes и методы BringToFront() и SendToBack и попытался использовать их для настройки порядка z, чтобы получить правильные снимки экрана. Все еще безуспешно.

Затем я прочитал документацию класса Shape относительно этих методов и обнаружил следующее замечание:

Метод BringToFront можно использовать для позиционирования элемента управления LineShape, OvalShape или RectangleShape перед всеми другими элементами управления линией и формой в данном контейнере. Он не размещает элемент управления перед другими типами элементов управления в контейнере; Графика, нарисованная с помощью элементов управления линиями и фигурами, всегда отображается за другими элементами управления.

Есть ли шанс изменить это поведение и сделать снимок экрана моей формы с помощью DrawToBitmap? Есть идеи для другого решения? Я также попробовал метод CopyFromScreen класса Graphics, но я хочу, чтобы весь процесс сохранения снимка экрана работал без отображения форм, которые я хочу сохранить.

0 ответов

Другие вопросы по тегам