public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, DragEventArgs dragData, TreeNode draggedOn, TreeNode copy) { TreeNodeDraggedData = data; DragData = dragData; DraggedOnNode = draggedOn; CopiedNode = copy; }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); if (e.LeftButton == MouseButtonState.Pressed) { if (_data == null) { _data = new TreeNodeDragDropDataObject(this); } DragDrop.DoDragDrop(this, _data, DragDropEffects.Copy | DragDropEffects.Move | DragDropEffects.None); if (TreeNodeDragStarted != null) { TreeNodeDragStarted(this, new TreeNodeDragDropEventArgs(_data, e)); } } }
public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, DragEventArgs dragData, TreeNode draggedOn) { TreeNodeDraggedData = data; DragData = dragData; DraggedOnNode = draggedOn; }
public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, GiveFeedbackEventArgs feedback, TreeNode draggedOn) { TreeNodeDraggedData = data; FeedbackData = feedback; DraggedOnNode = draggedOn; }
public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, GiveFeedbackEventArgs feedback) { TreeNodeDraggedData = data; FeedbackData = feedback; }
public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, MouseEventArgs mouseData) { TreeNodeDraggedData = data; MouseData = mouseData; }
public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data) { TreeNodeDraggedData = data; }
protected override void OnDrop(DragEventArgs e) { base.OnDrop(e); if (e.AllowedEffects.HasFlag(DragDropEffects.Move) || e.AllowedEffects.HasFlag(DragDropEffects.Copy)) { if (e.Data.GetDataPresent("ICSharpCode.SharpDevelop.Services.Gui.DragDropDataObjects.TreeNodeDragDropDataObject") || e.Data.GetDataPresent(DataFormats.FileDrop)) { TreeNodeDragDropDataObject draggedNodeData = (TreeNodeDragDropDataObject)e.Data.GetData("ICSharpCode.SharpDevelop.Services.Gui.DragDropDataObjects.TreeNodeDragDropDataObject"); if (e.KeyStates == DragDropKeyStates.ControlKey) { e.Effects = DragDropEffects.Copy; //Make copy of the dragged node TreeNode copiedNode = (TreeNode)draggedNodeData.DraggedNode.Clone(); //Add copied node as child of the current node this.AddChild(copiedNode); if (TreeNodeDropCompleted != null) { TreeNodeDropCompleted(this, new TreeNodeDragDropEventArgs(_data, e, this, copiedNode)); } e.Handled = true; } else { TreeNode draggedNode = draggedNodeData.DraggedNode; if (draggedNode != this) { //If item being dragged has parent then unlink it from that parent if (draggedNode.Parent != null) { //Parent is an TreeNode or TreeViewItem if (draggedNode.Parent is TreeNode) { TreeNode parent = draggedNode.Parent as TreeNode; parent.Items.Remove(draggedNode); } //Parent is the TreeView itself if (draggedNode.Parent is System.Windows.Controls.TreeView) { //Need to get TreeView instance and remove node from it } } //Add dragged node as child of the current node this.Items.Add(draggedNode); e.Effects = DragDropEffects.Move; if (TreeNodeDropCompleted != null) { TreeNodeDropCompleted(this, new TreeNodeDragDropEventArgs(_data, e, this)); } e.Handled = true; } else { e.Effects = DragDropEffects.None; } } } else { e.Effects = DragDropEffects.None; } } else { e.Effects = DragDropEffects.None; } }