GDI+ 中的笔、直线和矩形

若要使用 GDI+ 绘制线条,需要创建 Graphics 对象和 Pen 对象。 Graphics 对象提供实际执行绘图的方法,Pen 对象存储属性,如线条颜色、宽度和样式。

绘制线条

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

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

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

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

构造笔

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

Pen myPen = new Pen(Color.Blue, 2);
myGraphics.DrawLine(myPen, 0, 0, 60, 30);
Dim myPen As 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 对象的属性来设置行的更多属性。 StartCapEndCap 属性指定行尾的外观;端可以是平面、正方形、圆角、三角或自定义形状。 通过 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 方法:

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

Rectangle 对象具有用于操作和收集有关矩形的信息的方法和属性。 例如,InflateOffset 方法更改矩形的大小和位置。 IntersectsWith 方法告知矩形是否与另一个给定矩形相交,Contains 方法指示给定点是否位于矩形内。

另请参阅