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