gpt4 book ai didi

c# - DrawToBitmap 没有截取所有项目的屏幕截图

转载 作者:可可西里 更新时间:2023-11-01 08:41:33 26 4
gpt4 key购买 nike

我目前有这段有用的代码,是我在 StackOverflow 的其他地方找到的:

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

我有一个带有几个文本框/下拉菜单和一个大图片框的表单。然后我将较小的图片框放在这个大图片框的顶部。

当我查看截取的屏幕截图时,它显示了表单,但出于某种原因没有显示放置在大图片框上的较小图片框?

最佳答案

我在 Control.DrawToBitmap() 的文档中看到了这个限制:

Controls inside containers are rendered in reverse order.

这意味着如果两个控件彼此重叠,通常呈现在另一个“下方”的控件(先绘制然后被重叠控件 overdraw )将最后呈现(因此它将与通常重叠的控件重叠它)。在您的情况下,如果较小的控件完全绘制在较大控件的边界内并位于其顶部,则该控件将被此反向渲染隐藏。

尝试通过在被较小 PictureBox 重叠的较大 PictureBox 上使用 BringToFront() 和 SendToBack() 来解决此问题。在绘制到位图之前调用 BringToFront(),然后在完成后调用 SendToBack()。如果您不希望用户看到屏幕闪烁,请尝试在进行任何 Z 顺序更改之前调用 SuspendLayout(),然后在重置为正确的 Z 顺序后调用 ResumeLayout(true)。

关于c# - DrawToBitmap 没有截取所有项目的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10096195/

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