c# - 将面板保存为 JPEG,仅保存可见区域 c#

标签 c# printing jpeg

我正在尝试保存,然后在 C# 中打印一个面板。我唯一的问题是它只保存可见区域,当我向下滚动时它会打印出来。

 Bitmap bmp = new Bitmap(this.panel.Width, this.panel.Height);

 this.panel.DrawToBitmap(bmp, new Rectangle(0, 0, this.panel.Width, this.panel.Height));

 bmp.Save("c:\\panel.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

最佳答案

尝试跟随

    public void DrawControl(Control control,Bitmap bitmap)
    {
        control.DrawToBitmap(bitmap,control.Bounds);
        foreach (Control childControl in control.Controls)
        {
            DrawControl(childControl,bitmap);
        }
    }

    public void SaveBitmap()
    {
        Bitmap bmp = new Bitmap(this.panel1.Width, this.panel.Height);

        this.panel.DrawToBitmap(bmp, new Rectangle(0, 0, this.panel.Width, this.panel.Height));
        foreach (Control control in panel1.Controls)
        {
            DrawControl(control, bmp);
        }

        bmp.Save("d:\\panel.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
    }

这是我的结果:

表单截图:

enter image description here

保存的位图:

enter image description here

如您所见,TextBox 在表单上不可见,但存在于保存的位图中

关于c# - 将面板保存为 JPEG,仅保存可见区域 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001576/

相关文章:

c# - 跨应用域访问配置文件

JavaScript - 如何使用 EXIF 数据在网络摄像头中拍照?

java - 如何从 Java 中的 JPEG 图像中删除元数据?

java - 打印机服务 未找到?

c - 在 C 中打印 char 的二进制表示

c - 为什么我的文本无法打印?

c# - JPEG 压缩的 TIFF 比原始 JPEG 大得多

javascript - 如何从不同网站的嵌入网址生成缩略图?

c# - 在单独的线程中使用实例时使用什么生命周期范围?

c# - 如果 Contains 返回 true,则提取列表中的项目