GDI+ 中的笔、直线和矩形

若要用 GDI+ 绘制直线,需要创建 Graphics 对象和 Pen 对象。 Graphics 对象提供进行实际绘制的方法,Pen 对象存储特性,如直线的颜色、宽度和线型。

绘制直线

若要绘制直线,请调用 Graphics 对象的 DrawLine 方法。 将 Pen 对象作为参数之一传递给 DrawLine 方法。 下面的示例绘制了一条从点 (4, 2) 到点 (12, 6) 的直线:

        myGraphics.DrawLine(myPen, 4, 2, 12, 6)

myGraphics.DrawLine(myPen, 4, 2, 12, 6);

DrawLineGraphics 类的一个重载方法,因此,有数种为其提供参数的方式。 例如,可构造两个 Point 对象并将 Point 对象作为参数传递给 DrawLine 方法:

        Dim myStartPoint As New Point(4, 2)
        Dim myEndPoint As New Point(12, 6)
        myGraphics.DrawLine(myPen, myStartPoint, myEndPoint)

Point myStartPoint = new Point(4, 2);
Point myEndPoint = new Point(12, 6);
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint);

构造钢笔

可以在构造 Pen 对象时指定某些特性。 例如,有一种 Pen 构造函数允许您指定颜色和宽度。 下面的示例绘制了一条从 (0, 0) 到 (60, 30) 宽度为 2 的蓝线:

        Dim myPen As New Pen(Color.Blue, 2)
        myGraphics.DrawLine(myPen, 0, 0, 60, 30)

Pen myPen = new Pen(Color.Blue, 2);
myGraphics.DrawLine(myPen, 0, 0, 60, 30);

虚线和线帽

Pen 对象也公开属性(如 DashStyle),这些属性可用于指定直线的特性。 下面的示例绘制了一条从 (100, 50) 到 (300, 80) 的虚线:

        myPen.DashStyle = DashStyle.Dash
        myGraphics.DrawLine(myPen, 100, 50, 300, 80)

myPen.DashStyle = DashStyle.Dash;
myGraphics.DrawLine(myPen, 100, 50, 300, 80);

可以使用 Pen 对象的属性为直线设置更多特性。 StartCap 属性和 EndCap 属性指定直线端点的外观;端点可以是平的、方形的、圆形的、三角形的或自定义的形状。 LineJoin 属性用于指定连接的线相互间是斜接的(联接时形成锐角)、斜切的、圆形的还是截断的。 下面的插图显示了具有不同的线帽和联接类型的直线。

直线

绘制矩形

用 GDI+ 绘制矩形与绘制直线类似。 若要绘制矩形,需要 Graphics 对象和 Pen 对象。 Graphics 对象提供 DrawRectangle 方法,Pen 对象存储特性(例如线宽和颜色)。 将 Pen 对象作为参数之一传递给 DrawRectangle 方法。 下面的示例绘制了一个矩形,其左上角位于 (100, 50),宽度为 80,高度为 40:

        myGraphics.DrawRectangle(myPen, 100, 50, 80, 40)

myGraphics.DrawRectangle(myPen, 100, 50, 80, 40);

DrawRectangleGraphics 类的一个重载方法,因此,有数种为其提供参数的方式。 例如,可构造 Rectangle 对象并将 Rectangle 对象作为参数传递给 DrawRectangle 方法:

        Dim myRectangle As New Rectangle(100, 50, 80, 40)
        myGraphics.DrawRectangle(myPen, myRectangle)

Rectangle myRectangle = new Rectangle(100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, myRectangle);

Rectangle 对象具有用于处理和收集矩形相关信息的方法和属性。 例如,InflateOffset 方法可更改矩形的大小和位置。 IntersectsWith 方法判断矩形是否与另一给定矩形相交,Contains 方法判断一个给定点是否在该矩形内。

请参见

任务

如何:创建钢笔

如何:在 Windows 窗体上绘制线条

如何:绘制空心形状

参考

System.Drawing.Graphics

System.Drawing.Pen

System.Drawing.Rectangle