我用GDI+在Form上画了一个圆,通过判定点是否在园内来用鼠标选取它。
然后我用graphics.ScaleTransform(scale, scale);将图像按照scale这个比例进行缩放后,鼠标就无法选中圆了。
用ScaleTransform进行缩放后,坐标系是否发生了偏移?
鼠标点要如何偏移才能选中圆?

解决方案 »

  1.   

    画的时候 Matrix mx = new Matrix();
     mx.Scale(_zoom, _zoom, MatrixOrder.Append);
     e.Graphics.Transform = mx;
    用鼠标去选择的时候要把坐标进行计算
            public Point PointToMouse(Point p)
            {
                // Backtrack the mouse...
                Point[] pts = new Point[] { p };
                Matrix mx = new Matrix();
                mx.Scale(_zoom, _zoom, MatrixOrder.Append);
                mx.Invert();
                mx.TransformPoints(pts);
                return pts[0];
            }