Exemplo n.º 1
0
        private void ft_DragOverNode(object sender, FastTreeNS.DragOverItemEventArgs e)
        {
            var draggedNodes = (e.Data.GetData(typeof(HashSet <object>)) as HashSet <object>).ToList().Cast <Node>();
            var targetNode   = e.Tag as Node;

            //check if targetNode is child of draggedNodes
            foreach (var n in draggedNodes)
            {
                if (targetNode.IsChildOf(n) || n == targetNode)
                {
                    return;
                }
            }
            //
            e.Effect = e.AllowedEffect;
            if (e.X > e.TextRect.Left + 50)
            {
                e.InsertEffect = FastTreeNS.InsertEffect.AddAsChild;
            }
            else
            if (e.Y < e.TextRect.Top + 10)
            {
                e.InsertEffect = FastTreeNS.InsertEffect.InsertBefore;
            }
            else
            {
                e.InsertEffect = FastTreeNS.InsertEffect.InsertAfter;
            }
        }
Exemplo n.º 2
0
        private void ft_DropOverNode(object sender, FastTreeNS.DragOverItemEventArgs e)
        {
            var draggedNodes = (e.Data.GetData(typeof(HashSet <object>)) as HashSet <object>).ToList().Cast <Node>();
            var targetNode   = e.Tag as Node;

            //
            switch (e.InsertEffect)
            {
            case FastTreeNS.InsertEffect.AddAsChild: AddChild(draggedNodes, targetNode); break;

            case FastTreeNS.InsertEffect.InsertBefore: InsertBefore(draggedNodes, targetNode); break;

            case FastTreeNS.InsertEffect.InsertAfter: InsertAfter(draggedNodes, targetNode); break;
            }

            ft.Build(root);
        }