Windows Form "Hole"

6
我该如何在 Windows 窗体中创建一个动态的“孔”,让用户能够看到实际桌面而不是窗体?目前,我已经创建了一个半透明的窗体覆盖整个屏幕,现在想要通过这个半透明的窗体来查看背后的内容。
2个回答

12

使用表单的Region属性。

Rectangle rect = new Rectangle(Point.Empty, this.Size);
Region region = new Region(rect);

rect.Inflate(-1 * (this.Width / 3), -1 * (this.Height / 3));
region.Exclude(rect);

this.Region = region;

那应该会在你的表单上打个洞。


非常好的答案!简单而且漂亮! - Nikos Steiakakis
非常出色,先生!非常感谢! - Robert Synoradzki

5

如果您需要“孔”具有矩形形状,可以将表单的TransparencyKey属性设置为某种颜色,然后创建一个背景与该颜色相同的面板。(该面板在运行时将是透明的。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接