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

发布于 2024-10-10 15:28:18 字数 64 浏览 0 评论 0原文

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

最好的

I need a solution how could i make a Print Screen of my WinForm on C# and export it as PNG.

Bests

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

迷路的信 2024-10-17 15:28:18

我认为这篇博客文章会有帮助。

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);
}

I think this blog post will help.

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);
}
☆獨立☆ 2024-10-17 15:28:18

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

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

Never tried it, but i'd think you should be able to call OnPaint(args) with a PaintEventArgs you create, that includes a Graphics for the image you want to draw on, and the ClipRectangle encompassing the whole area of the form.

This would only work if your form properly processes paint messages (ie: if it stores enough info to be able to repaint the window fully at will), and it may only get the client area (ie: it might not get the title bar or menus).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文