0

我正在使用此代码创建一个矩形:

public static Rectangle RectangleFromPoints(Point a, Point b)
    {
        return new Rectangle(Math.Min(a.X, b.X),
                             Math.Min(a.Y, b.Y),
                             Math.Abs(a.X - b.X),
                             Math.Abs(a.Y - b.Y));
    }

我的问题是当我画一条水平线或垂直线然后尝试将它移动到 aY 时,因为一个长负数并引发溢出异常错误。

编辑

 public override void Translate(Size s)
    {
        var oldBounds = this.ExpandedBounds;
        _startLocator.Translate(s);
        _endLocator.Translate(s);
        Notify();
        _canvas.Repaint(System.Drawing.Rectangle.Union(oldBounds, this.ExpandedBounds));

这是移动线的代码。这是 ExpandedBounds:

 public Rectangle ExpandedBounds
    {
        get
        {
            var rect = this.Bounds;
            rect.Inflate((LocatorHandle.WIDTH / 2) + 1, (LocatorHandle.HEIGHT / 2) + 1);
            return rect;
        }
    }
4

0 回答 0