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