/// <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; } }