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 方法:

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 构造函数允许你指定颜色和宽度。 以下示例从 (0, 0) 到 (60, 30) 绘制一条宽度为 2 的蓝线:

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 属性可指定连接线是斜接(用尖角连接)、斜切、圆角还是剪裁的。 下图显示了具有各种帽和联接样式的线条。

Lines

绘制矩形

使用 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 方法指示给定点是否在矩形内。

另请参阅