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

2023-12-01

我正在尝试保存,然后在 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

正如您所看到的,有一个文本框在表单上不可见,但存在于保存的位图中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将面板保存为 JPEG,仅保存可见区域 c# 的相关文章

随机推荐

  • 我应该尽可能避免使用 JS 而使用 CSS 吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在寻找最佳实践答案 目前我正在尝试向我网站的导航栏添加一个下拉菜单 我发现我可以使用 CSS 来做到这一点 而且我也可以使用 JS Angular 来做到这一点 我读到过 因为使用 J
  • 使用 Selenium 将元素滚动到视图中

    Selenium 1 x 或 2 x 中是否有任何方法可以滚动浏览器窗口 以便 XPath 标识的特定元素位于浏览器的视图中 Selenium 中有一个 focus 方法 但在 FireFox 中似乎没有物理滚动视图 有人对如何做到这一点有
  • D3.js 如何将力布局的节点排列在圆上

    我开发了一种力量布局来代表社会群体之间的关系 现在我想让节点分布在一个圆圈中 并有链接连接它们 做这个的最好方式是什么 完整版本的代码 没有数据 在这里http jsfiddle net PatriciaW zZSJT 为什么我也必须在这里
  • UICollectionView 和补充视图崩溃

    我有一个 UICollectionView 工作正常 有 2 种方法可以到达此页面 虽然应用程序 点击推送通知 除了一种情况外 一切都很好 如果用户正在聊天 然后退出应用程序 主页按钮 然后他收到一条推送通知 按下它 应用程序崩溃了 cra
  • Matlab - 如何以函数内的字符串形式检索函数调用的确切参数列表?

    假设我有以下功能 function name the paramlist varargin Print out varargin exactly how it is called as a string 基本上我想要它做的是 调用 name
  • 运行 pyinstaller 时出错(1920,“LoadLibraryEx”,“系统无法访问该文件”)

    我试图将我的 python 脚本编译为 exe 以便我可以将其发送给可以使用而无需安装 python 的朋友 但我遇到了问题并且无法找到解决方案 我发现了类似的问题Pyinstaller win32ctypes pywin32 pywint
  • 单击按钮时将道具传递给另一个组件

    在我的 nextJS 应用程序中 我想将一个组件的 props 传递给另一个组件 该组件既不是第一个组件的父组件 也不是第一个组件的子组件 我该怎么做 有一个Orderdiv 内的组件Orders页面和OrderViewer在另一个 div
  • 用 Monadic 咒语召唤 JQuery Deferred

    灵感来自this 优秀 关于在 javascript 中使用 Promises 的讨论 我正在尝试弄清楚如何使用 Deferred 将异步和非异步函数链接在一起 以避免在使用我的 时支付回调税全局存储 code 我有一些与此相关的问题 但我
  • 我如何知道 AppDelegate 中的方向发生了变化

    设备如何知道方向变化的功能是 void viewWillLayoutSubviews 和 void viewDidLayoutSubviews 但是 它们只是在控制器中 现在我想知道是否有类似的函数可以知道文件 AppDelegate m
  • 如何使用 Elixir/phoenix 从 csv 文件导入用户?

    我有一个包含用户列表的 csv 文件以及 UserController 内的以下导入方法 我想通过使用表单提交 csv 文件来导入这些用户 看来我做错了 用户控制器 def import conn user gt user params d
  • 在 Windows Phone 8 上启动 PDF 阅读器

    我正在尝试使用下面的代码启动 pdf 阅读器 但它不起作用 有人可以帮助我吗 private async Task
  • 如何使用 angular2 http API 跟踪上传/下载进度

    因此 有许多临时库支持 Angular2 中的上传 下载进度 我不知道如何使用本机 Angular2 http api 在上传 下载时显示进度 我想使用原生http api的原因是因为我想利用 围绕本机 http api 的 http 拦截
  • 如何在 Java 中从 SQL*Plus 以“SYS”身份连接到 Oracle

    我想连接到 Oracle 作为SYS来自 Java 中的 SQL Plus 但我无法连接 但我能够以名为的用户进行连接SCOTT 我的代码片段如下 public static void test script String fileName
  • Eclipse 表单部分工具栏中的切换按钮

    如何在 Eclipse UI Forms 的部分工具栏中实现切换按钮 如下图所示 我只找到向部分工具栏添加操作的示例 我认为关键是 IAction AS CHECK BOX toggleBotton new Action Messages
  • 使用附加构建器的导航栏上的 Firefox 扩展图标

    如何向 Firefox 添加一个图标 单击导航栏即可打开一个面板 Firebug 扩展就是一个例子 唯一不同的是我希望出现一个面板 Thanks 您可能想使用或查看此工具栏按钮库 https builder addons mozilla o
  • 如何渲染 DotML

    如何将 DotML 渲染成图表 据网站介绍here 从数据中获取图表需要三个步骤 首先 生成或手动键入包含 DotML 元素的 gt XHTML 或任何其他 XML 文件 Use http www martin loetzsch de DO
  • cout 语句中的调用顺序说明,后缀与前缀

    当我在打印测试时注意到实际值输出中出现意外情况时 我正在重载后缀和前缀 运算符并测试它们 作为示例 这是一个整数测试 int i 0 cout lt lt before prefix lt lt i lt lt prefixing lt l
  • 想要使从服务器端不可见的控件的客户端可见性变为真实

    我的页面中有一个文本框 其可见性从服务器端设置为 false 现在我想通过使用 java 脚本使其从客户端可见 这种情况下不能实现任何回发或部分回发
  • 并行高效地运行多个作业

    操作系统 Centos 我有一些30 000要运行的作业 或脚本 每项工作需要 3 5 分钟 我有48 CPUs nproc 48 我可以用40 CPUs to run 40 Jobs并行 请建议一些脚本或工具可以通过并行运行每 40 个作
  • 将面板保存为 JPEG,仅保存可见区域 c#

    我正在尝试保存 然后在 C 中打印面板 我唯一的问题是它只保存可见区域 当我向下滚动时它会打印出来 Bitmap bmp new Bitmap this panel Width this panel Height this panel Dr