コード例 #1
0
ファイル: UIDrawing.cs プロジェクト: jwk000/TiledStudio
 public override void OnKeyDown(KeyEventArgs e)
 {
     if (CurrentSelectNode != null)
     {
         if (e.KeyCode == Keys.Enter)
         {
             if (e.Shift)
             {
                 //孩子节点
                 CurrentSelectNode = CurrentSelectNode.AddNode("子节点");
                 return;
             }
             //兄弟节点
             if (CurrentSelectNode == Root)
             {
                 return;
             }
             var node = CurrentSelectNode.Parent.AddNode("子节点");
             CurrentSelectNode = node;
         }
         else if (e.KeyCode == Keys.Delete)
         {
             //删除节点
             CurrentSelectNode.Parent.DelNode(CurrentSelectNode);
             CurrentSelectNode = null;
             CurrentMoveNode   = null;
         }
         else if (e.Alt)
         {
             if (e.KeyCode == Keys.Up)
             {
                 AINode.SwapNode(CurrentSelectNode, true);
             }
             else if (e.KeyCode == Keys.Down)
             {
                 AINode.SwapNode(CurrentSelectNode, false);
             }
         }
     }
 }
コード例 #2
0
ファイル: UIDrawing.cs プロジェクト: jwk000/TiledStudio
        public override void OnPaint(PaintEventArgs e)
        {
            Init();

            //绘制原图
            Root.SetGraphics(e.Graphics);
            Root.CalcNodeHeight();
            Root.CalcNodeWidth();
            Root.SelfOutRect.X = ClientSize.Width / 2 - Root.NodeOutRect.Width / 2;
            Root.SelfOutRect.Y = ClientSize.Height / 2;

            Root.AutoLayout();
            Root.DrawNode();
            if (CurrentSelectNode != null)
            {
                CurrentSelectNode.DrawOutLine(outlinePen);
            }

            if (!IsMoving || CurrentMoveNode == null)
            {
                return;
            }
            //绘制移动的节点
            CurrentMoveNode.SelfOutRect.X = MovingPos.X - CurrentMoveNode.SelfOutRect.Width / 2;
            CurrentMoveNode.SelfOutRect.Y = MovingPos.Y - CurrentMoveNode.SelfOutRect.Height / 2;
            CurrentMoveNode.DrawSelf(moveBrush, movePen);

            if (MoveToParentNode == null)
            {
                return;
            }
            //绘制父节点连线
            MoveToParentNode.DrawOutLine(outlinePen);
            CurrentMoveNode.DrawOutLine(outlinePen);
            ShapeHelper.DrawConnectLine(e.Graphics, outlinePen, MoveToParentNode.ConnectOutPos, CurrentMoveNode.ConnectInPos);
        }