.net 图形.绘图矩形(笔、矩形F)
FillRectangle、DrawRectangle、FilleIPSE和DrawEllipse都可以接受4个浮动(或“单个”)参数:x、y、宽度、高度。DrawRectangle是唯一一个不采用矩形的.net 图形.绘图矩形(笔、矩形F),.net,graphics,drawing,overloading,rectangles,.net,Graphics,Drawing,Overloading,Rectangles,FillRectangle、DrawRectangle、FilleIPSE和DrawEllipse都可以接受4个浮动(或“单个”)参数:x、y、宽度、高度。DrawRectangle是唯一一个不采用矩形的 我想知道是否有人知道这是为什么。看起来他们只是忘了让它过载。我也觉得这是个疏忽 有趣的是,有一个以矩形f[]数组为参数的Draw矩形重载 因此,如果需要的话,我想您可以将其与一个数组大小一起使用。根据Andy的回答,这个简单的扩展方法使生活更轻松 using System.Drawing;
我想知道是否有人知道这是为什么。看起来他们只是忘了让它过载。我也觉得这是个疏忽 有趣的是,有一个以矩形f[]数组为参数的Draw矩形重载
因此,如果需要的话,我想您可以将其与一个数组大小一起使用。根据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);
}
根据Andy的回答,扩展应如下所示
public static class GraphicsExtensions
{
public static void DrawRectangle(this Graphics g, Pen pen, RectangleF rect)
{
g.DrawRectangles(pen, new[] { rect });
}
}
我知道这个问题由来已久,但仅供参考:我认为正确的方法是使用或,例如:
Dim BBox As RectangleF = ListOfRectangleF(3) ' get RectangleF any way you have it
Dim p As New Pen(Brushes.DarkRed)
e.Graphics.DrawRectangle(p, Rectangle.Round(ptBBox)) ' draw RectangleF using Rectangle.Round()