Как экспортировать изображение моей формы c # - PullRequest
2 голосов
/ 05 января 2011

Мне нужно решение, как я могу сделать Print Screen моего WinForm на C # и экспортировать его как PNG.

Bests

Ответы [ 2 ]

3 голосов
/ 05 января 2011

Думаю, это сообщение в блоге поможет.

using (Bitmap bitmap = new Bitmap(ParentForm.Size.Width, ParentForm.Size.Height))
{
    using (Graphics g = Graphics.FromImage(bitmap))
    {
      g.CopyFromScreen(new Point(ParentForm.DesktopLocation.X, ParentForm.DesktopLocation.Y), new Point(0, 0), ParentForm.Size);
    }

    bitmap.Save(@"C:\test.jpg", ImageFormat.Jpeg);
}
1 голос
/ 05 января 2011

Никогда не пробовал, но я думаю, что вы должны быть в состоянии вызвать OnPaint(args) с помощью PaintEventArgs, который вы создаете, который включает в себя графику для изображения, на котором вы хотите рисовать, и ClipRectangle, охватывающий всю область формы .

Это будет работать только в том случае, если ваша форма правильно обрабатывает сообщения рисования (т. Е. Если она хранит достаточно информации, чтобы иметь возможность перекрасить окно полностью по желанию), и она может получить только клиентскую область (т. Е. Она может не получить строка заголовка или меню).

...