在圆角 Winform 中需要重叠按钮

Need overlapping button in round cornered Winform

需要有关 WinForm 样式的快速建议。即使重新调整大小,我也用圆角制作了它。现在尝试添加带有图像的关闭按钮 (ControlBox=false),重叠或剪裁到右上角。这就是我可以结束的。

但我希望让它更像这个示例图像。

我如何在 WinForm 中实现这一点。

如果不对 windows、

进行外部操作,Winforms 本身无法为您提供此功能

因为后台还是用win32 windows 类。

如果您想要 windows 中的透明度:请参阅以下文章:

Cool, Semi-transparent and Shaped Dialogs with Standard Controls

以及Win32中的实现方法: SetLayeredWindowAttributes

诀窍在于:您的 window 不只是以白色部分结尾。它延伸得更远一点。关闭按钮位于 'extra' 部分下方。 window 似乎不存在的另一面实际上是透明的……或者在图像的情况下,是半透明的。
发光效果由 window 提供。将 window 的 TransparencyKey 属性 设置为 Color.Magenta(这是惯例,因为洋红色是最不可能在 window 中使用的颜色)。然后将背景图像设置为白色背景,边缘有一点洋红色。当设置为背景图像时,洋红色将显示为透明。
Fiddle 和 TransparencyKey 在一起你就会明白我的意思