4.用Pen对象画图
我们使用GDI+的Pen类来创建定制的钢笔。在实例化Pen对象时,可以指定钢笔的Color和Width属性。使用Pen类绘制直线、曲线和图形的边框。
1.Pen的构造函数
Pen(Brush) /Pen(Brush, Single) Pen(Color)/Pen(Color, Single)
//Brush决定了Pen如何绘制直线,绘制出来的直线就好像是填充的矩形 Pen skyBluePen = new Pen(Brushes.DeepSkyBlue); Pen Pen = new Pen(Color.Blue);
2.钢笔的宽度
下面矩形的左上角坐标是(3,3),其长度为8个像素,宽度为7个像素。钢笔的默认宽度为1个像素
Pen p = new Pen(Color.Blue); g.DrawRectangle(p,3,3,8,7);
下面的矩形使用3个像素宽度,钢笔宽度大于1像素的时候,将会从绘制点向两边进行扩展来绘制线条。
Pen p = new Pen(Color.Blue,3); g.DrawRectangle(p,3,3,8,7);
3.Alignment属性
该属性控制Pen对象如何绘制线宽,默认是Center。如上面,线宽的绘制会在绘制的点向两侧绘制。这里使用PenAlignment枚举,在System.Drawing.Drawing2D命名空间中。Insert、Outset在绘制矩形这类图型的时候,来控制是在图形内部还是外部绘制。
Pen p = new Pen(Color.Black, 3); p.Alignment = PenAlignment.Inset; g.DrawRectangle(p, 3, 3, 8, 7);
Left/Right是在画线的时候,控制在左边还是右边。比如绘制柱状图的时候(DrawLine)会希望柱状向右扩展进行绘制。
3.DashStyle属性
Pen p = new Pen(Color.Black); p.DashStyle = DashStyle.Dash;
DashStyle枚举挺了5个预定义的样式:Solid、Dash、DashDot、DashDotDot和Dot
4.DashPattern属性
在高分辨率下面,上面预定义的短线样式无法区分。可以使用短划线模式来进行自定义。
Pen p = new Pen(Color.Black); //使用p.DashPattern的时候,该项自动设置 p.DashStyle = DashStyle.Custom; float[] f = { 15, 5, 10, 5 }; p.DashPattern = f; g.DrawRectangle(p, 10, 10, 80, 100);
短划线模式是使用数组{15,5,10,5}指定的:短划线模式就是这4个元素的循环,15像素长短线,5像素长空隙,10像素长短线,5像素长空隙。此外,如果钢笔的线宽设置为大于1像素的值,那么模式中的线和空隙的实际长度就是数组中的值乘以钢笔的宽度。
设置:float[] f = { 15, 5, 10, 5 };
实际:float[] f = { 15*线宽, 5*线宽, 10*线宽, 5*线宽 };