/// <summary> /// 边框移动,参数均是偏移量 /// </summary> /// <param name="xOff"></param> /// <param name="yOff"></param> /// <param name="wOff"></param> /// <param name="hOff"></param> protected override void FrameMove(float xOff, float yOff, float wOff, float hOff) { DataBk.State = ControlState.FrameMove; DataBk.FixRate = Calculation.GetFixPointRate(xOff, yOff, wOff, hOff); NewRect = Calculation.OffsetRect(DataBk.Rect, xOff, yOff, wOff, hOff); SetRect(CalculateOffset()); }
public override void BoundMove(float xOff, float yOff, float wOff, float hOff) { RectangleF rect = IsVector ? BaseBoundMove(xOff, yOff, wOff, hOff) : Calculation.OffsetRect(DataBk.Rect, xOff, yOff, wOff, hOff); SetRect(rect); }
/// <summary> /// 设置一个固定点,转换矩阵变化后,计算出偏移值,使得固定点的值保持不变 /// </summary> protected RectangleF CalculateOffset() { bool isBound = (DataBk.State == ControlState.BoundMove); PointF oldPoint = Calculation.CalcFixPoint(DataBk, DataBk.FixRate, isBound); PointF newPoint = Calculation.CalcFixPoint(this, DataBk.FixRate, isBound); float xOff = oldPoint.X - newPoint.X + DataBk.Offset.X; float yOff = oldPoint.Y - newPoint.Y + DataBk.Offset.Y; return(Calculation.OffsetRect(NewRect, xOff, yOff, 0, 0)); }
public override void GroupRotate(float angle, PointF center) { RectangleF rect = BaseGroupRotate(angle, center); float xOff = rect.X - DataBk.Rect.X; float yOff = rect.Y - DataBk.Rect.Y; _groupInvalidate = true; foreach (IDrawObj obj in ObjList) { ((DrawObj)obj).SetRect(Calculation.OffsetRect(((DrawObj)obj).DataBk.Rect, xOff, yOff, 0, 0)); } LoadGeneratePathEvent(); }
/// <summary> /// 边框移动 /// </summary> /// <param name="xOff"></param> /// <param name="yOff"></param> /// <param name="wOff"></param> /// <param name="hOff"></param> protected virtual void FrameMove(float xOff, float yOff, float wOff, float hOff) { SetRect(Calculation.OffsetRect(DataBk.Rect, xOff, yOff, wOff, hOff)); }
public virtual void MouseMove(PointF point) { SetRect(Calculation.OffsetRect(DataBk.Rect, point.X - DataBk.MousePos.X, point.Y - DataBk.MousePos.Y, 0, 0)); }