Esempio n. 1
0
 /// <summary>
 /// 当鼠标移动的时候
 /// </summary>
 /// <param name="e">鼠标信息</param>
 protected override void OnMouseMove(MouseEventArgs e)
 {
     base.OnMouseMove(e);
     #region  择框的拉取
     ///查看是否具备刷新框选的资格
     if (MyPanel.IsToSelect && ToolHelp.DisPoint(MyPanel.MouseStartPoint, e.GetPosition(MyPanel)) > MoveDistance)
     {
         MyPanel.MouseEndPoint = e.GetPosition(MyPanel);
         CaultRectangle(MyPanel.InveateRec);
     }
     #endregion
     #region 画贝塞尔曲线
     else if (isDrawBezier && !isOverAribute && MyBezierLine != null)
     {
         MyBezierLine.SetBezierLine(e.GetPosition(MyPanel), FirstXa.GetOrXPositonStyle());
     }
     #endregion
     #region 自身移动
     ///如果焦点在本控件并且准备好移动自身
     if (HasChildControled() && IsStartMove)
     {
         ///获取新的点
         EndDragPoint = e.GetPosition(MyPanel);
         if (ToolHelp.DisPoint(StartDragPoint, EndDragPoint) >= MoveDistance)
         {
             HorMove(StartDragPoint.X - EndDragPoint.X);
             VecMove(StartDragPoint.Y - EndDragPoint.Y);
             IsMove           = true;
             StartDragPoint.X = EndDragPoint.X;
             StartDragPoint.Y = EndDragPoint.Y;
         }
     }
     #endregion
 }
        /// <summary>
        /// 设置的是起始点(弃用的方法)
        /// </summary>
        /// <param name="position">位置类型</param>
        /// <param name="fistPoint">点的坐标</param>
        protected void SetBezierStart(XAribute.XPositonStyle position, Point fistPoint)
        {
            double cur = (fistPoint.Y - EndPoint.position.Y) / ToolHelp.DisPoint(fistPoint, EndPoint.position) / 7;
            double dis = cur > maxdis ? maxdis : cur;

            dis = dis < mindis ? mindis : dis;
            StartPoint.position = fistPoint;
            switch (position)
            {
            case XAribute.XPositonStyle.Left:
                connectorPoints.StartPoint = StartPoint.position;
                connectorCurve.Point1      = new Point(StartPoint.position.X - dis, StartPoint.position.Y);
                connectorCurve.Point2      = new Point(EndPoint.position.X + dis, EndPoint.position.Y);
                //connectorCurve.Point3 = OverPoint;
                break;

            case XAribute.XPositonStyle.right:
                connectorPoints.StartPoint = StartPoint.position;
                connectorCurve.Point1      = new Point(StartPoint.position.X + dis, StartPoint.position.Y);
                connectorCurve.Point2      = new Point(EndPoint.position.X - dis, EndPoint.position.Y);
                //connectorCurve.Point3 = OverPoint;
                break;
            }
        }