10

http://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawrectangle.aspx

FillRectangle、DrawRectangle、FillElipse、および DrawEllipse はすべて、x、y、幅、高さの 4 つの Float (または「単一」) パラメータを取ることができます。ただし、DrawRectangle は RectangleF を取らない唯一のものです。

これがなぜなのか、誰かが知っているかどうか疑問に思っていました。彼らはそれをオーバーロードするのを忘れていたようです。

4

4 に答える 4

14

まあ、それは確かに私にも省略のように見えます.

興味深いことに、RectangleF[] 配列をパラメーターとして受け取る DrawRectangles のオーバーロードがあります。

したがって、必要に応じて配列サイズを 1 にしてこれを使用できると思います。

于 2009-01-21T21:21:31.137 に答える
1

アンディの答えによると、拡張子は次のようになります

public static class GraphicsExtensions
{
    public static void DrawRectangle(this Graphics g, Pen pen, RectangleF rect)
    {
        g.DrawRectangles(pen, new[] { rect });
    }
}
于 2018-03-27T05:17:11.843 に答える
0

Andy の回答に続いて、この単純な拡張メソッドにより作業が楽になります。

using System.Drawing;

public static class GraphicsExtensions
{
    public static void DrawRectangle(this Graphics g, Pen pen, RectangleF rect) =>
        g.DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height);
}
于 2017-08-23T07:42:50.453 に答える