c# - XAML 工具提示 + IsHitTestVisible ="False"

标签 c# wpf user-interface xaml

我们需要让我们的 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/

相关文章:

python - 如何从字典键设置 tkinter 组合框的值

c# - 如何在 Excel 中的 SheetChange 事件中确定新的和以前的单元格值?

c# - 为特定文件禁用 Resharper 的 "Adjust namespace"

c# - 使用 LINQ 和 Lambda 加入/在何处

c# - WPF - 将 List<T> 绑定(bind)为 WrapPanel 的内容

WPF 将 FlowDocuments 打印到 XPS : printed content not stretching across page. 为什么?

c# - 如何将 "click"处理程序添加到作为控件模板一部分的按钮?

android - 操作栏 : Best practice for older Android versions

java - ComboBox - 打印出所选项目

c# - 如何使用用户定义的标签(自定义属性)区分类属性