WPF树视图拖放事件总是在点击元素时触发

本文关键字:元素 视图 拖放 事件 WPF | 更新日期: 2023-09-27 18:13:07

我正在尝试创建一个拖拽&WPF TreeView控件中的drop解决方案,使用这些技术:拖放到TreeView中,找到要插入被拖放项的索引

当用户点击一个TreeViewItem时,首先执行treeViewItem_MouseLeftButtonDown,然后执行treeViewItem_Drop

WPF树视图拖放事件总是在点击元素时触发

听起来你正在从treeViewItem_MouseLeftButton处理程序调用DragDrop.DoDragDrop()。当鼠标按钮被释放时,treeViewItem_Drop甚至会被触发,所以你每次点击鼠标都会得到一个drop事件。尝试从treeViewItem_MouseMove处理程序调用DoDragDrop。只需确保在调用DroDragDrop之前按下鼠标左键。您可能还希望在开始DragDrop操作之前确保鼠标移动了最小距离,例如

if(e.LeftButton == MouseButtonState.Pressed 
    && horizontal_move > SystemParameters.MinimumHorizontalDragDistance)
{
    DragDrop.DoDragDrop();
}