我正在尝试使用以下技术在 WPF TreeView 控件中组合拖放解决方案:拖放 到 TreeView,查找插入拖放项的索引
当用户单击 TreeViewItem 时,首先treeViewItem_MouseLeftButtonDown
执行,然后treeViewItem_Drop
也执行。每一次点击。
我正在尝试使用以下技术在 WPF TreeView 控件中组合拖放解决方案:拖放 到 TreeView,查找插入拖放项的索引
当用户单击 TreeViewItem 时,首先treeViewItem_MouseLeftButtonDown
执行,然后treeViewItem_Drop
也执行。每一次点击。
听起来您是DragDrop.DoDragDrop()
从treeViewItem_MouseLeftButton
处理程序中调用的。释放鼠标按钮时会引发偶数,因此treeViewItem_Drop
每次单击鼠标都会收到一个 drop 事件。尝试DoDragDrop
从treeViewItem_MouseMove
处理程序调用。只需确保在调用之前按下鼠标左键即可DroDragDrop
。您可能还需要确保鼠标在开始DragDrop
操作之前已经移动了最小距离,例如
if(e.LeftButton == MouseButtonState.Pressed
&& horizontal_move > SystemParameters.MinimumHorizontalDragDistance)
{
DragDrop.DoDragDrop();
}