WPF 按钮 Button 的 IsEnabled 属性对 WindowChrome 的 IsHitTestVisibleInChrome 的影响

本文探讨了WPF中,按钮的IsEnabled属性如何影响WindowChrome的IsHitTestVisibleInChrome属性。当按钮启用且设置IsHitTestVisibleInChrome=True时,按钮能响应标题栏点击,但禁用时双击会触发窗口最大化。在按钮上方放置另一个禁用按钮时,双击行为同样会被改变。理解这种交互对于自定义WPF窗口行为至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 WPF 里面,默认标题栏的交互相对复杂,如按钮没有设置 WindowChrome.IsHitTestVisibleInChrome 属性为 True 那按钮是拿不到点击事件的。本文来告诉大家按钮 Button 的 IsEnabled 属性对 WindowChrome 的 IsHitTestVisibleInChrome 的影响

在 WPF 中的默认交互是点击标题栏的时候,如果是双击标题栏,那么将会进入最大化窗口。而如果在标题栏放一个按钮,此时按钮默认是没有收到点击的,详细请看 WPF 非客户区的触摸和鼠标点击响应

如果想要让按钮能收到点击,需要使用 WPF 非客户区的触摸和鼠标点击响应 的方法,让 WPF 的按钮加上 WindowChrome.IsHitTestVisibleInChrome 属性

此时点击按钮的时候,如果是在标题栏的地方,是让按钮收到点击。此时双击标题栏的按钮不会让窗口最大化,但如果此时的按钮设置 IsEnabled="False" 那么此时双击将依然让窗口最大化

而有趣的是如果在按钮 A 设置了 WindowChrome.IsHitT

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值