我有一条消息位于边框内并显示在 MDI 客户区前面。因为只是一条消息,所以我设置为IsHitTestVisible
为假。为方便起见,我还在其中包含了一个按钮,以便用户只需单击该按钮即可开始新图表。
但是,因为边界有其IsHitTestVisible
设置为 False
,它使 True
短路按钮的值,因此用户无法单击按钮。
就是说,您如何才能使鼠标不可见控件,同时仍允许其子项之一接收鼠标事件?
这是一个屏幕截图:
我们希望带有文本的蓝色区域在 HitTest 中不可见,但我们希望按钮仍然能够被按下。想法? (是的,我已经知道将这两个项目堆叠在一个网格中,但这会影响布局。
最佳答案
好吧,看来问题不能按要求解决了,因此看来我们必须恢复到分层方法。在这种情况下,为了补偿文本更改,您必须将按钮的垂直对齐设置为底部,并确保在边框的底部边缘或 TextBlock 的底部边距上有额外的填充)以确保标签始终 float 在按钮。您使用相同的原则管理两者的边距/填充。
这将为我们提供我们想要的东西,但看起来很麻烦。同样,我希望有某种方法可以指定 IsHitTestVisible(或 IsEnabled),并以某种方式将它们(以及以下)重新建立为行为的所有者。一个人可以做梦。在那之前......它是层数!
关于wpf - 如何将 IsHitTestVisible 设置为 True 的某个对象的子项设置为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148286/