Drag & Drop in Treeview
This article is very helpful. Drag drop wpf
This code may be of use to you as well.
Point _startPoint;bool _IsDragging = false;void TemplateTreeView_PreviewMouseMove(object sender, MouseEventArgs e){ if (e.LeftButton == MouseButtonState.Pressed || e.RightButton == MouseButtonState.Pressed && !_IsDragging) { Point position = e.GetPosition(null); if (Math.Abs(position.X - _startPoint.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(position.Y - _startPoint.Y) > SystemParameters.MinimumVerticalDragDistance) { StartDrag(e); } } }void TemplateTreeView_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e){ _startPoint = e.GetPosition(null);}private void StartDrag(MouseEventArgs e){ _IsDragging = true; object temp = this.TemplateTreeView.SelectedItem; DataObject data = null; data = new DataObject("inadt", temp); if (data != null) { DragDropEffects dde = DragDropEffects.Move; if (e.RightButton == MouseButtonState.Pressed) { dde = DragDropEffects.All; } DragDropEffects de = DragDrop.DoDragDrop(this.TemplateTreeView, data, dde); } _IsDragging = false;}