问题:
如何抓取透明面板显示在位图中的内容?
背景
我需要创建一个位于所有内容之上的表单并使屏幕的一部分模糊,但不会阻止用户与之交互。奇怪......我知道。
我创建了一个表单并添加了一个面板。然后我将面板的设置背景颜色设置为红色。然后将表单的TransparentKey属性设置为红色,topmost = True。
所以现在我有一个透明的面板。凉。我可以与它下面的应用程序进行交互。凉。现在我只需添加模糊。我想看看panel1上显示的内容并将其模糊然后显示在panel1顶部的panel2上。或者至少这是个主意。
重要细节:
DrawToBitmap()只显示红色背景。
这是在XP上运行。
答案 0 :(得分:2)
是的,DrawToBitmap()。但不是在透明面板上,在透明面板下面。如果那个“面板”实际上不是你的那么你必须使用Graphics.CopyFromScreen()。
不确定您打算如何处理它,但在透明面板中绘制模糊图像会使其不透明,您无法再与底层窗口交互。此外,不要使用红色,如果底层窗口包含任何红色,您将获得意外的透明度。 Color.Fuchsia是一个不错的选择,它是一种有趣的颜色。