在圆角 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
在一起你就会明白我的意思
需要有关 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
在一起你就会明白我的意思