延迟后检查WPF控制拖放上的鼠标位置

时间:2014-03-11 11:31:40

标签: c# wpf treeview

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

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

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

1 个答案:

答案 0 :(得分:1)

我能够通过这里的另一个问题回答这个问题。我使用的主题可以在这里找到: How do I get the current mouse screen coordinates in WPF?

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

如果当前TreeViewItem与触发DragOver事件的TreeViewItem相同,那么我展开节点,否则什么都不做。