public static void OnDragOver(TreeViewItemEx tvItem, DragEventArgs e) { //System.Diagnostics.Debug.WriteLine($"DragOver: {tvItem.Item}"); if (dropInfo != null && dropInfo.CouldHadleDrop(e)) { dropInfo.UpdateInsertPosition(e); dropInfo.UpdateTargetCollectionAndIndex(); if (dropInfo.CanAcceptData(DropInfo.ExtractDropData(dragInfo, e))) { if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { e.Effects = DragDropEffects.Copy; } else { e.Effects = DragDropEffects.Move; } } else { e.Effects = DragDropEffects.None; } dropInfo.Effects = e.Effects; e.Handled = true; } }
public static void OnDragOver(TreeViewItemEx tvItem, DragEventArgs e) { //System.Diagnostics.Debug.WriteLine($"DragOver: {tvItem.Item}"); if (dropInfo == null) { dropInfo = new DropInfo(); } if (dropInfo.CouldHadleDrop(e)) { // set the target item, this also initializes the DropTargetAdorner dropInfo.TargetItem = tvItem; // update data related to the current mouse position and the target item dropInfo.UpdateInsertPosition(e); dropInfo.UpdateTargetContainerAndIndex(); // set the drop mode Copy|Move|None if (dropInfo.CanAcceptData(DropInfo.ExtractDropData(dragInfo, e))) { if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { e.Effects = DragDropEffects.Copy; } else { e.Effects = DragDropEffects.Move; } } else { e.Effects = DragDropEffects.None; } // this controls the adorner dropInfo.Effects = e.Effects; e.Handled = true; } }