Gdi+ 画刷

画刷和填充的形状

闭合的形状(例如,矩形或椭圆)由轮廓和内部组成。轮廓用钢笔绘制,内部用画刷填充。GDI+提供了几种用于填充闭合形状内部的画刷类:SolidBrush、HatchBrush、TextureBrush和GradientBrush。所有这些类都是从Brush类继承的。

1.使用实心画刷

要填充闭合图形,需要有Graphics对象和Brush对象。Graphics对象提供 FillRectangle和FillEllipse这样的方法,Brush对象存储填充的属性,如颜色和图案。Brush对象作为参数之一被传递到填充方法。例如用纯红色填充椭圆:

SolidBrush sb (Color ( 100, 100, 100, 100) );
g.FillEllipse (&sb , 10, 10, 100, 100) ;

效果图:

2.使用阴影画刷

用阴影画刷填充图形时,要指定前景色、背景色和阴影样式。前景色是阴影的颜色。

    HatchBrush hb(HatchStyleHorizontalBrick , Color.Black, Color.Gray);
    g.FillRectangle(&hb,50,150,150,120);

GDI+提供了50多种阴影样式

效果图:

3.使用纹理画刷

有了纹理画刷,就可以用位图中存储的图案来填充图形。例如,假定在磁盘中存储了一个名为MyTexture.bmp的图片,下面的代码通过使用MyTexture.bmp中的图片来填充椭圆。

Image myImage (L "brush.bmp" );
TextureBrush th  (&myImage ); 
g.FillEllipse (&th ,  50300150120) ;

效果:

4.使用渐变画刷

GDI+提供两种渐变画刷:线性和路径。可以使用线性渐变画刷来用颜色(在横向、纵向或斜向移过图形时会逐渐变化的颜色)填充图形。

下面的示例用水平渐变画刷填充一个椭圆,当从椭圆的左边缘向右边缘移动时画刷颜色会由蓝变绿。

LinearGradientBrush lgb (  
        Point ( 50, 450) ,
        Point ( 200, 450) ,
        Color.Blue ,                   
        Color.Green );  
g.FillEllipse (&lgb , 50, 450, 150, 120) ;

效果图:

猜你喜欢

转载自blog.csdn.net/ykiwmy/article/details/67640631