Как сделать скриншот окна прокрутки в C # - PullRequest
4 голосов
/ 15 февраля 2012

Какой самый простой способ в C # сделать скриншот полного окна прокрутки?

Здесь приведены примеры использования веб-браузера, но в данном случае это окно для настольного приложения Windows.

Ответы [ 3 ]

1 голос
/ 15 февраля 2012

Вы можете получить окна для перенаправления WM_PAINT во внеэкранный буфер с помощью WM_PRINT и WM_PRINTCLIENT.Это лучше, чем скрининг, поскольку он гарантирует, что затемненные части окна (за другими окнами) все равно будут окрашены.Если ваше целевое окно прокручивается путем прокрутки позиции дочернего окна, WM_PRINT должен применяться.Просто, возможно, это также помогает вашему сценарию.

0 голосов
/ 13 августа 2013

Достаточно всего 3 строки кода

Bitmap b = new Bitmap(pnlOuter.Width, pnlOuter.Height);
pnlOuter.DrawToBitmap(b, new Rectangle(0, 0, pnlOuter.Width, pnlOuter.Height));
b.Save("D:\\bitmapImage.jpg");

pnlOuter - это панель, содержащая все элементы управления, которые должны отображаться на изображении, с увеличенной высотой, чтобы содержать все внутренние элементы управления. В содержащей форме могут быть включены полосы прокрутки.

0 голосов
/ 11 апреля 2012

Я решил эту проблему, используя Win API и снимая несколько скриншотов, прокручивая между ними, а затем соединяя их вместе.

...