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*线宽 };

posted on 2012-10-30 16:49  凡一二三  阅读(1551)  评论(0编辑  收藏  举报