wpf - 如何将 IsHitTestVisible 设置为 True 的某个对象的子项设置为 false?

标签 wpf layout hittest

我有一条消息位于边框内并显示在 MDI 客户区前面。因为只是一条消息,所以我设置为IsHitTestVisible为假。为方便起见,我还在其中包含了一个按钮,以便用户只需单击该按钮即可开始新图表。

但是,因为边界有其IsHitTestVisible设置为 False ,它使 True 短路按钮的值,因此用户无法单击按钮。

就是说,您如何才能使鼠标不可见控件,同时仍允许其子项之一接收鼠标事件?

这是一个屏幕截图:

enter image description here

我们希望带有文本的蓝色区域在 HitTest 中不可见,但我们希望按钮仍然能够被按下。想法? (是的,我已经知道将这两个项目堆叠在一个网格中,但这会影响布局。

最佳答案

好吧,看来问题不能按要求解决了,因此看来我们必须恢复到分层方法。在这种情况下,为了补偿文本更改,您必须将按钮的垂直对齐设置为底部,并确保在边框的底部边缘或 TextBlock 的底部边距上有额外的填充)以确保标签始终 float 在按钮。您使用相同的原则管理两者的边距/填充。

这将为我们提供我们想要的东西,但看起来很麻烦。同样,我希望有某种方法可以指定 IsHitTestVisible(或 IsEnabled),并以某种方式将它们(以及以下)重新建立为行为的所有者。一个人可以做梦。在那之前......它是层数!

关于wpf - 如何将 IsHitTestVisible 设置为 True 的某个对象的子项设置为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148286/

相关文章:

wpf - LoadedEvent 的路由事件类处理程序不适用于大多数类

java - Java 中的字体指标不正确/缺失?

CSS固定流体(溢出:auto)-fixed layout

.net - 检查数据网格中的双击是否单击了滚动条

c# - 根据内容的最佳匹配测试创建 WPF UI

c# - 列表框选择更改事件 : get the value before it was changed

c# - 如何在datagrid wpf中设置列的位置

android - 如何更改 EditText 中的线条颜色

objective-c - 如何在给定 CGPoint 的情况下获取 UIView?