http://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawrectangle.aspx
FillRectangle、DrawRectangle、FillElipse 和 DrawEllipse 都可以采用 4 个 Float(或“Single”)参数:x、y、宽度、高度。不过,DrawRectangle 是唯一不采用 RectangleF 的。
我想知道是否有人知道这是为什么。看起来他们似乎只是忘记了超载它。
http://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawrectangle.aspx
FillRectangle、DrawRectangle、FillElipse 和 DrawEllipse 都可以采用 4 个 Float(或“Single”)参数:x、y、宽度、高度。不过,DrawRectangle 是唯一不采用 RectangleF 的。
我想知道是否有人知道这是为什么。看起来他们似乎只是忘记了超载它。
好吧,这对我来说确实也像是一个遗漏。
有趣的是,有一个 DrawRectangles 的重载,它接受一个 RectangleF[] 数组作为参数。
所以我想如果需要的话,你可以将它与一个数组大小一起使用。
根据安迪的回答,扩展名应该如下
public static class GraphicsExtensions
{
public static void DrawRectangle(this Graphics g, Pen pen, RectangleF rect)
{
g.DrawRectangles(pen, new[] { rect });
}
}
继安迪的回答之后,这种简单的扩展方法让生活更轻松。
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);
}