Pen、Brush对象

创建和使用Pen、Brush对象

下面使用Pen、Brush和Font对象来创建二维矢量图形、文本以及带有GDI+的位图。Pen对象和Brush对象是Windows窗体图形系统的基础。使用Pen对象绘制直线、曲线和图形轮廓,使用Brush对象填充由直线、曲线围成的区域,以及绘制文本。如果不知道Pen对象和Brush 对象,则很难在Windows窗体中开始工作;如果不知道什么是Brush对象,也就不能显示文本。

1.使用Pen对象

Pen对象用于绘制线条、曲线和轮廓图形,也就是空心图形。为了创建新Pen对象,必须指定一种颜色,还要指定宽度值和线条样式属性。

创建新Pen对象。

    
    
  1. Pen myPen=new Pen(color.Blue); 

设置宽度和样式属性。

Pen的宽度属性--Width属性是Integer类型,默认值是1(该单位取决于Graphics对象的设置);样式属性 --DashStyle属性也是Integer类型。Width属性可以在实例化一个新Pen时设置,但是线条的样式必须在Pen创建以后才能设置。下面的示例演示了使用不同的宽度和样式属性来创建Pen对象。宽度默认值为1,样式默认值为实心。

    
    
  1. Pen penwideRed=new Pen(color.Red,10);  
  2. Pen penDashedBlack=new Pen(color.B1ack,6);  
  3. PenDashedBlack DashStyle=DashStyle Dash;  
  4. penDashedBlack Dashcap=Dashcap Round; 

【实例8-2】  使用Pen对象绘制曲线。

    
    
  1. Graphics MyGraphics = label1.CreateGraphics();  
  2. //红色的Pen,宽度为  
  3. Pen pen = new Pen(Color.Red, 6f);  
  4. //设置Pen的样式  
  5. pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;  
  6. pen.DashCap = System.Drawing.Drawing2D.DashCap.Round;  
  7. Point[] points = new Point[4];  
  8. points[0] = new Point(10 ,80);  
  9. points[1] = new Point(70,20);  
  10. points[2] = new Point(190,140);  
  11. points[3] = new Point(250,80);  
  12. MyGraphics.DrawCurve(pen, points); 

运行结果如图8-2所示。

 
图8-2  使用Pen对象绘制曲线

2.使用Brush对象

绘制文本和填充图形时,需要用Brush对象(画刷对象)。Brush对象可以创建产生实心、阴影、纹理和渐变效果。在Windows GDI+中拥有53种画刷样式。

下面举例说明如何在水平方向使用白色和蓝色混合来创建实心的蓝色Brash对象和线性渐变色Brush对象。

【实例8-3】  使用普通画刷与渐变画刷。

    
    
  1. Graphics g = label1.CreateGraphics();  
  2.  
  3. //使用普通画刷绘制矩形  
  4. Rectangle myretang = new Rectangle(5, 20, 150, 180);  
  5. SolidBrush myBrush = new SolidBrush(Color.Salmon);  
  6. g.FillRectangle(myBrush, myretang);  
  7.  
  8. //使用渐变画刷绘制圆  
  9. Rectangle myretang = new Rectangle(170, 10, 160, 160);  
  10. LinearGradientBrush mylbrush = new LinearGradientBrush(  
  11.                                        myretang,   
  12.                                        Color.Red,   
  13.                                        Color.Yellow,  
  14.                                        LinearGradientMode.Horizontal);  
  15. g.FillEllipse(mylbrush, 170, 10, 160, 160); 

运行结果如图8-3所示。

 
图8-3  使用普通画刷与使用渐变画刷
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值