Exemple #1
0
        /// <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));
        }