如何导出我的表单的图像c#

时间:2011-01-05 15:20:53

标签: c# printscreen

我需要一个解决方案,如何在C#上创建WinForm的打印屏幕并将其导出为PNG。

贝斯茨

2 个答案:

答案 0 :(得分:3)

我认为blog post会有所帮助。

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 :(得分:1)

从未尝试过,但我认为您应该可以使用您创建的PaintEventArgs调用OnPaint(args),其中包括要绘制的图像的Graphics,以及包含整个区域的ClipRectangle形式。

这只有在你的表单正确处理绘制消息时才会起作用(即:如果它存储了足够的信息以便能够完全重新绘制窗口),并且它可能只获得客户区域(即:它可能无法获得标题栏或菜单)。