Ejemplo n.º 1
0
 public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, DragEventArgs dragData, TreeNode draggedOn, TreeNode copy)
 {
     TreeNodeDraggedData = data;
     DragData            = dragData;
     DraggedOnNode       = draggedOn;
     CopiedNode          = copy;
 }
Ejemplo n.º 2
0
        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));
                }
            }
        }
Ejemplo n.º 3
0
 public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, DragEventArgs dragData, TreeNode draggedOn)
 {
     TreeNodeDraggedData = data;
     DragData            = dragData;
     DraggedOnNode       = draggedOn;
 }
Ejemplo n.º 4
0
 public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, GiveFeedbackEventArgs feedback, TreeNode draggedOn)
 {
     TreeNodeDraggedData = data;
     FeedbackData        = feedback;
     DraggedOnNode       = draggedOn;
 }
Ejemplo n.º 5
0
 public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, GiveFeedbackEventArgs feedback)
 {
     TreeNodeDraggedData = data;
     FeedbackData        = feedback;
 }
Ejemplo n.º 6
0
 public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data, MouseEventArgs mouseData)
 {
     TreeNodeDraggedData = data;
     MouseData           = mouseData;
 }
Ejemplo n.º 7
0
 public TreeNodeDragDropEventArgs(TreeNodeDragDropDataObject data)
 {
     TreeNodeDraggedData = data;
 }
Ejemplo n.º 8
0
        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;
            }
        }