我们需要让我们的 View1“忽略”鼠标点击和拖动,但工具提示必须仍然在该 View 中起作用。原因是 View1 在 Z-Order 中高于 View2,因此 View1 可以将 View2 染成红色并通过工具提示显示警告;但是,如果 IsHitTestVisible="False",则伴随 View1 的工具提示将不起作用。
有谁知道解决方法,以便工具提示将在鼠标移动/悬停时显示,而其余的鼠标事件将被 View1 忽略并转到 View2?
谢谢,
肖恩
最佳答案
如果其他人也面临同样的问题,他们可能会觉得这很有帮助。
我们需要禁用数据网格上的几行,但同时允许对它们进行箭头键导航。这就是为什么我们必须切换到 IsHitTestVisible
而不是控制 IsEnabled
属性。所以我们不能采用上述切换到 IsEnabled
属性的解决方案。
这是我最终解决这个问题的方法。我为 DataGridRow
创建了一个新的附加属性 RowEnable
。此附加属性可以绑定(bind)到 viewmodel 属性以控制 virtual
启用和禁用。我还为 DataGridCell
创建了一个新样式,我根据相同的 View 模型属性将 IsHitTestVisible
设置为 false
。因此,将其视为鼠标/键盘可以看到但看不到其单元格/列的行。这意味着现在我可以根据新的附加属性 RowEnabled
设置行的样式,使其看起来已禁用/已启用。同时,我可以查看这些实际上已禁用的拖车的工具提示。
希望这对您有所帮助!
关于c# - XAML 工具提示 + IsHitTestVisible ="False",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2774026/