我需要一个解决方案,如何在 C# 上制作我的 WinForm 的打印屏幕并将其导出为 PNG。
最好的
我认为这篇博文会有所帮助。
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);
}
从未尝试过,但我认为您应该能够OnPaint(args)
使用您创建的 PaintEventArgs 进行调用,其中包括您要绘制的图像的 Graphics,以及包含整个表单区域的 ClipRectangle。
这仅在您的表单正确处理绘制消息时才有效(即:如果它存储了足够的信息以能够随意重新绘制窗口),并且它可能只获得客户区(即:它可能无法获得标题栏或菜单)。