Home

GDI+ Brushes: Solid Brushes

 

Simple Colored Brushes

Like a pen, the primary characteristic of a brush is its color. To help you create a simple brush, the System.Drawing namespace provides the static sealed Brushes class. The only feature this class provides is the ability to specify a color to use on a brush. As a static class, you never have to instantiate it.

To create a simple brush whose only information is provided by its color, call the Brushes class and access a color by qualifying it with the name of the class. Each color is provided by its name as a property. Here is an example of using the class:

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
    Point[] pt = { new Point(10,  22), new Point(188, 246),
                          new Point(280, 192), new Point(250,  48) };

    e.Graphics.FillClosedCurve(Brushes.BlanchedAlmond, pt);
    e.Graphics.DrawClosedCurve(Pens.Blue, pt);
}

This would produce:

Brush

Creating a Solid Brush

The simplest type of brush is referred to as solid. This type of brush is simply equipped with a color and it is used to fill a shape with it. To get a solid brush, you use the SolidBrush class defined in the System.Drawing namespace. It has only one constructor declared with the following syntax:

public SolidBrush(Color color);

The color passed as argument must be a valid definition of a Color. Here is an example:

private void Exercise_Paint(object sender, PaintEventArgs e)
{
        SolidBrush brushBlue = new SolidBrush(Color.Blue);

        e.Graphics.FillRectangle(brushBlue, 20, 20, 200, 160);
}

This would produce:

Brush

If you plan to use different colors to fill different shapes, you don't have to create a new brush for each shape. At any time, before re-using the same brush previously defined, you can simply change its Color. For this reason, the SolidBrush class is equipped with the Color property. Here is an example of using it:

private void Exercise_Paint(object sender, PaintEventArgs e)
{
        SolidBrush colorizer = new SolidBrush(Color.Lime);
        e.Graphics.FillRectangle(colorizer, 10, 10, 120, 120);

        colorizer.Color = Color.Salmon;
        e.Graphics.FillRectangle(colorizer, 140, 10, 120, 120);

        colorizer.Color = Color.Aqua;
        e.Graphics.FillRectangle(colorizer, 10, 140, 120, 120);

        colorizer.Color = Color.Navy;
        e.Graphics.FillRectangle(colorizer, 140, 140, 120, 120);
}

This would produce:

Solid Brushes

Like most objects used in graphics programming, a brush consumes the computer resources. Therefore, after using it, you can free the resources it was using by calling the Dispose() method. Here is an example:

private void Exercise_Paint(object sender, PaintEventArgs e)
{
        SolidBrush colorizer = new SolidBrush(Color.Lime);
        e.Graphics.FillRectangle(colorizer, 10, 10, 120, 120);

        colorizer.Color = Color.Salmon;
        e.Graphics.FillRectangle(colorizer, 140, 10, 120, 120);

        colorizer.Color = Color.Aqua;
        e.Graphics.FillRectangle(colorizer, 10, 140, 120, 120);

        colorizer.Color = Color.Navy;
        e.Graphics.FillRectangle(colorizer, 140, 140, 120, 120);

    colorizer.Dispose();
}
 

Home Copyright © 2007 FunctionX, Inc.