GDI+ 中的画笔和实心形状

闭合的形状(例如,矩形或椭圆)由轮廓和内部组成。 使用钢笔绘制出轮廓,并用画笔填充其内部。 GDI+ 提供了几种填充闭合形状内部的画笔类:SolidBrushHatchBrushTextureBrushLinearGradientBrushPathGradientBrush。 所有这些类都是从 Brush 类继承的。 下面的插图显示了用实心画笔填充的矩形和用阴影画笔填充的椭圆。

实心形状

实心画笔

若要填充闭合的形状,需要 Graphics 类的实例和 BrushGraphics 类的实例提供方法,如 FillRectangleFillEllipse,而 Brush 存储填充的特性,如颜色和模式。 Brush 作为参数之一传递给填充方法。 下面的代码示例演示如何用纯红色填充椭圆。

        Dim mySolidBrush As New SolidBrush(Color.Red)
        myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40)

SolidBrush mySolidBrush = new SolidBrush(Color.Red);
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);

提示

在前面的示例中,画笔为 SolidBrush 类型,该类型从 Brush 继承。

阴影画笔

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

        Dim myHatchBrush As _
           New HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green)

HatchBrush myHatchBrush =
   new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green);

GDI+ 提供 50 多种阴影样式;在下面的插图中显示的三种样式为:HorizontalForwardDiagonalCross

实心形状

纹理画笔

有了纹理画笔,您就可以用位图中存储的图案来填充图形。 例如,假定下面的图片存储在名为 MyTexture.bmp 的磁盘文件中。

实心形状

下面的代码示例演示了如何通过重复存储在 MyTexture.bmp 中的图片来填充椭圆。

        Dim myImage As Image = Image.FromFile("MyTexture.bmp")
        Dim myTextureBrush As New TextureBrush(myImage)
        myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50)

Image myImage = Image.FromFile("MyTexture.bmp");
TextureBrush myTextureBrush = new TextureBrush(myImage);
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50);

下面的插图显示已填充的椭圆。

实心形状

渐变画笔

GDI+ 提供两种渐变画笔:线性和路径。 您可以使用线性渐变画笔来用颜色(在您横向、纵向或斜向移过图形时会逐渐变化的颜色)填充图形。 下面的代码示例演示如何用水平渐变画笔填充一个椭圆,当从椭圆的左边缘向右边缘移动时,画笔颜色会由蓝变为绿。

        Dim myLinearGradientBrush As New LinearGradientBrush( _
           myRectangle, _
           Color.Blue, _
           Color.Green, _
           LinearGradientMode.Horizontal)
        myGraphics.FillEllipse(myLinearGradientBrush, myRectangle)

LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(
   myRectangle,
   Color.Blue,
   Color.Green,
   LinearGradientMode.Horizontal);
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle);

下面的插图显示已填充的椭圆。

实心形状

路径渐变画笔可配置为当您从图形中心向边缘移动时颜色随之改变。

实心形状

路径渐变画笔非常灵活。 用于填充下面插图中三角形的渐变画笔,颜色从中心由红色开始到顶点逐渐变为三种不同的颜色。

实心形状

请参见

任务

如何:在 Windows 窗体上绘制实心矩形

如何:在 Windows 窗体上绘制实心椭圆

参考

System.Drawing.SolidBrush

System.Drawing.Drawing2D.HatchBrush

System.Drawing.TextureBrush

System.Drawing.Drawing2D.LinearGradientBrush

其他资源

直线、曲线和图形