gpt4 book ai didi

C# 非矩形按钮

转载 作者:太空宇宙 更新时间:2023-11-03 19:16:42 33 4
gpt4 key购买 nike

我正在尝试想出一种在 C# 中的 Windows 窗体中制作非矩形按钮的方法。我到处搜索这个,有很多教程(包括微软自己的文档)关于如何使按钮外观非矩形,但是——这很关键——它们都没有做任何关于使按钮的事件区域成为非矩形。例如,如果您制作了一个椭圆形按钮,则边界矩形的角仍然用于拾取鼠标事件,例如鼠标悬停和单击。这不符合我的需要。我需要有几个形状奇特的按钮彼此相邻,它们的边界矩形可能重叠,但它们应该只响应按钮图形可见部分内的点击。我已经看到其他语言(主要是 Objective-C)的几个类似问题,但 C# 没有。这甚至可以用 Winforms 实现吗?

最佳答案

Win32 窗口总是矩形的。但是,如果您使用 SetWindowRgn,则完全有可能在窗口中出现“孔”。 .还有 "Layered Window" APIs .

但是,您可能无法从纯 WinForms 执行此操作。期望到达 p/invoke。


看起来你可以从纯 WinForms 中做到这一点:只需设置 Control.Region属性(property)。

可以使用更完整的示例 on MSDN

关于C# 非矩形按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005712/

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