void IDropTarget.DragOver(IDropInfo dropInfo) { if (DefaultDropHandler.CanAcceptData(dropInfo)) { var isTreeViewItem = dropInfo.InsertPosition.HasFlag(RelativeInsertPosition.TargetItemCenter) && dropInfo.VisualTargetItem is TreeViewItem; RemoteTreeViewItem srcItem = dropInfo.Data as RemoteTreeViewItem; RemoteTreeViewItem destItem = dropInfo.TargetItem as RemoteTreeViewItem; if (destItem != null) { if (destItem.RemoteType != RemoteType.dir && destItem.Parent == srcItem.Parent) { return; } if (destItem == srcItem.Parent) { return; } } else { if (srcItem.Parent is RemoteTreeViewItem == false) { return; } } dropInfo.Effects = DefaultDropHandler.ShouldCopyData(dropInfo) ? DragDropEffects.Copy : DragDropEffects.Move; if (isTreeViewItem) { dropInfo.DropTargetAdorner = typeof(RemooeTreeHighlightAdorner); } } }