通过使用Pen 类的属性DashStyle 可以设置或者访问画笔的线型,GDI+ 在 DashStyle 枚举中提供了5中常见的画笔线型风格,DashStyle 不同的枚举值及其含义如下表所示:
DashStyle 不同的枚举值
成员
说明
Solid 指定实线 Dash 指定由划线段组成的直线 Dot 指定由点构成的直线 DashDot 定由重复的划线点图案构成的直线 DashDotDot 指定由重复的划线点点图案构成的直线 Custom 指定用户定义的自定义划线段样式
DashStyle 枚举主要定义了实线、虚线、点线、点划线、双点划线和自定义的线型,每种不同的线型从下图可以一目了然:
上图中最后一条直线中,使用的是自定义的线型,所谓的自定义就是GDI+内置的5种线型(如 Solid 、Dash 等)不能满足你的要求,此时就需要自己来设计自己需要的线型了,通过设置Pen 类的 DashPattern 属性,可以使用一个预定义的数组类描述画笔的虚实,数组的格式为:
[画笔部分长度,间隔部分长度,画笔部分长度,间隔部分长度......]
例程:
添加命名空间:
using System.Drawing.Drawing2D;
private void button1_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
g.Clear(Color.White);
//默认为实线
Pen p = new Pen(Color.Red, 3);
g.DrawRectangle(p, 50, 50, 200, 100);
//设置画笔线型
p.DashStyle = DashStyle.DashDotDot;
g.DrawRectangle(p, 50, 200, 200, 100);
//使用自定义线型
float[] dashArray = {
5.0f, //线长5个像素
2.0f, //间断2个像素
15.0f, //线长15个像素
8.0f //间断4个像素
};
p.DashPattern = dashArray;
p.Color = Color.Black;
g.DrawLine(p,280,100,500,100);
//释放资源
p.Dispose();
g.Dispose();
}
效果图: