C# Pen和Brush绘图类的用法(附带实例)
Pen 类主要用于设置画笔,其构造函数的语法格式如下:
例如,创建一个 Pen 对象,使其颜色为蓝色,宽度为 2,代码如下:
Color 结构中表示颜色的属性及说明如下表所示:
Brush 类是一个抽象基类,不能进行实例化。如果要创建一个画刷对象,则需要使用从 Brush 派生出的类,如 SolidBrush、HatchBrush 等。
示例代码:
使用 HatchBrush 类时,必须添加 System.Drawing.Drawing2D 命名空间。
例如,使用 HatchBrush 类创建一个画刷对象,使用 HatchStyle 指定要绘制的图案为交叉的水平线和垂直线,代码如下:

图 1 交叉的水平线和垂直线图案
使用 LinerGradientBrush 类时,必须添加 System.Drawing.Drawing2D 命名空间。
例如,使用 LinerGradientBrush 类创建一个渐变画刷对象,渐变颜色为从红色到蓝色,代码如下:

图 2 使用渐变画刷绘制的图形
public Pen(Color color, float width)
- color:设置 Pen 的颜色;
- width:设置 Pen 的宽度。
例如,创建一个 Pen 对象,使其颜色为蓝色,宽度为 2,代码如下:
Pen mypen1 = new Pen(Color.Blue, 2); // 实例化一个 Pen 类,并设置其颜色和宽度在上面的语法格式中设置画笔颜色时,用到了 Color 结构,该结构主要用来定义颜色,表示常用颜色的属性,开发人员可以直接使用。
Color 结构中表示颜色的属性及说明如下表所示:
属性 | 说明 | 属性 | 说明 |
---|---|---|---|
Black | 黑色 | Gray | 灰色 |
Blue | 蓝色 | Green | 绿色 |
Cyan | 青色 | LightGray | 浅灰色 |
Magenta | 洋红色 | Red | 红色 |
Orange | 橘黄色 | White | 白色 |
Pink | 粉红色 | Yellow | 黄色 |
C# Brush类
Brush 类主要用于设置画刷,以填充几何图形,如将正方形和圆形填充为其他颜色。Brush 类是一个抽象基类,不能进行实例化。如果要创建一个画刷对象,则需要使用从 Brush 派生出的类,如 SolidBrush、HatchBrush 等。
1) SolidBrush 类
SolidBrush 类用于定义单色画刷,该画刷用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。语法:public SolidBrush(Color color)其中,参数 color 表示此画刷的颜色。
示例代码:
Brush mybs = new SolidBrush(Color.Red); // 创建颜色为红色的画刷
2) HatchBrush 类
HatchBrush 类提供了一种特定样式的图形,用来制作填满整个封闭区域的绘图效果。语法:public HatchBrush(HatchStyle hatchstyle, Color foreColor)
- hatchstyle:HatchStyle 值之一,表示此 HatchBrush 所绘制的图案;
- foreColor:Color 结构,它表示此 HatchBrush 所绘制线条的颜色。
使用 HatchBrush 类时,必须添加 System.Drawing.Drawing2D 命名空间。
例如,使用 HatchBrush 类创建一个画刷对象,使用 HatchStyle 指定要绘制的图案为交叉的水平线和垂直线,代码如下:
Brush brush = new HatchBrush(HatchStyle.Cross, Color.Red); // 创建画刷使用上面定义的画刷绘制出的图形如下图所示:

图 1 交叉的水平线和垂直线图案
3) LinerGradientBrush类
LinerGradientBrush 类提供一种渐变色彩的特效,并填满图形的内部区域。语法如下:public LinearGradientBrush(Point point1, Point point2, Color color1, Color color2)语法中的参数及说明如下表所示:
参数 | 说明 |
---|---|
point1 | 表示线形渐变的开始点 |
point2 | 表示线形渐变的结束点 |
color1 | 表示线形渐变的开始色彩 |
color2 | 表示线形渐变的结束色彩 |
使用 LinerGradientBrush 类时,必须添加 System.Drawing.Drawing2D 命名空间。
例如,使用 LinerGradientBrush 类创建一个渐变画刷对象,渐变颜色为从红色到蓝色,代码如下:
Point p1 = new Point(100, 100); // 指定渐变的开始点 Point p2 = new Point(150, 150); // 指定渐变的结束点 // 实例化 LinearGradientBrush 类,设置其使用红色和蓝色进行渐变 LinearGradientBrush brush = new LinearGradientBrush(p1, p2, Color.Red, Color.Blue);使用上面定义的渐变画刷绘制出的图形如下图所示:

图 2 使用渐变画刷绘制的图形