【问题标题】:Check mouse position on WPF Control Drag and Drop after a delay延迟后检查 WPF 控件拖放上的鼠标位置
【发布时间】:2014-03-11 11:31:39
【问题描述】:

我正在尝试在 WPF Treeview 中实现拖放行为。作为其中的一部分,一旦触发 DragOver 事件,如果鼠标在节点上停留了一段时间,我需要展开当前悬停的节点。

我已经能够在触发的节点上使用 DelayedAction 成功延迟扩展,但是一旦触发延迟操作,我就无法成功检查鼠标的当前位置。目前,即使鼠标移离节点并释放点击,延迟后节点仍会展开。

我需要能够在延迟后检查鼠标的当前位置,并且只有在鼠标仍在节点上方时才展开节点。

【问题讨论】:

    标签: c# wpf treeview


    【解决方案1】:

    我能够通过此处另一个问题的答案来解决这个问题。我使用的线程在这里可用: How do I get the current mouse screen coordinates in WPF?

    我使用 Win32 的方法在延迟后获取正确的鼠标位置,并使用它通过命中测试来获取鼠标下的当前 TreeViewItem。

    如果当前 TreeViewItem 与触发 DragOver 事件的 TreeViewItem 相同,则展开节点,否则不执行任何操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      相关资源
      最近更新 更多