gpt4 book ai didi

winforms - 如何使用 C# 将 Windows 窗体面板作为位图获取?

转载 作者:行者123 更新时间:2023-12-01 05:02:56 25 4
gpt4 key购买 nike

我有一个带有面板的 Windows 窗体,上面有几个控件。面板不会占用所有的表单空间,而只会占用一小部分。我想知道的是,是否有某种方法可以将面板(带有所有子控件)的显示检索为位图。类似于屏幕截图,但仅裁剪到面板。

我没有查看屏幕截图,因为面板位于可滚动控件(DevX 控件)内,所以有时它可能不完全可见,我需要它的可视化表示,无论是否可见。

这可能吗?

编辑:

嗯,现在看来果然如我所惧。建议的 DrawToBitmap() 解决方案仅绘制可见的控件部分。我已经使用 DisplayRectangle 来检索完整控件的大小。矩形没问题,现在位图是完整控件的大小,但是控件不可见的部分在位图上是透明的,不显示控件不可见部分上的控件。

有没有机会完全渲染这个?

最佳答案

当然,只需使用面板的 DrawToBitmap() 方法即可。它不是 100% 可靠,面板上可能有不支持它的控件。像 RichTextBox、WebBrowser 或某种第 3 方 ActiveX 控件。

    private static Image PanelToBitmap(Control pnl) {
var bmp = new Bitmap(pnl.Width, pnl.Height);
pnl.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
return bmp;
}

关于winforms - 如何使用 C# 将 Windows 窗体面板作为位图获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com