我正在尝试使用以下技术在 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();
}