このコードを使用して長方形を作成しています。
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;
}
}