Pinsel und gefüllte Formen in GDI+

Eine geschlossene Form, z. B. ein Rechteck oder ein Ellipse, besteht aus einer Kontur und einem Innenbereich. Die Kontur wird mit einem Stift gezeichnet, und das Innere wird mit einem Pinsel gefüllt. GDI+ bietet mehrere Pinselklassen zum Füllen des Innenbereichs geschlossener Formen: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush und PathGradientBrush. Alle diese Klassen erben von der Brush-Basisklasse. Die folgende Abbildung zeigt ein Rechteck, das mit einem Volltonpinsel gefüllt ist, und eine mit einem Schraffurpinsel gefüllte Ellipse.

Screenshot of a rectangle filled with a solid brush and an ellipse filled with a hatch brush.

Volltonpinsel

Um eine geschlossene Form zu füllen, benötigen Sie eine Instanz der Graphics-Klasse und einen Brush. Die Instanz der Graphics-Klasse bietet Methoden wie FillRectangle und FillEllipse, und Brush speichert Attribute der Füllung, z. B. Farbe und Muster. Das Brush-Objekt wird als eins der Argumente an die fill-Methode übergeben. Im folgenden Codebeispiel wird gezeigt, wie Sie eine Ellipse mit einer roten Volltonfarbe füllen.

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

Hinweis

Im vorherigen Beispiel ist der Pinsel vom Typ SolidBrush, der von Brush erbt.

Schraffurpinsel

Wenn Sie eine Form mit einem Schraffurpinsel füllen, geben Sie eine Vordergrundfarbe, eine Hintergrundfarbe und eine Schraffurart an. Die Vordergrundfarbe ist die Farbe der Schraffur.

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

GDI+ bietet mehr als 50 Schraffurstile. Die in der folgenden Abbildung gezeigten drei Stile sind Horizontal, ForwardDiagonal und Cross.

Screenshot of three ellipses that are filled with a horizontal hatch brush, forward diagonal hatch brush, and a cross hatch brush.

Strukturpinsel

Mit einem Strukturpinsel können Sie eine Form mit einem Muster füllen, das in einer Bitmap gespeichert ist. Angenommen, das folgende Bild ist in einer Datenträgerdatei namens MyTexture.bmp gespeichert.

Screenshot of the My Texture dot b m p file.

Im folgenden Codebeispiel wird gezeigt, wie Sie eine Ellipse füllen, indem das in MyTexture.bmp gespeicherte Bild wiederholt wird.

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

Die folgende Abbildung zeigt die ausgefüllte Ellipse.

Screenshot of an ellipse that is filled with a texture brush.

Farbverlaufspinsel

GDI+ bietet zwei Arten von Farbverlaufspinseln: linear und Pfad. Sie können einen linearen Farbverlaufspinsel verwenden, um eine Form mit einer Farbe zu füllen, die sich graduell ändert, während Sie horizontal, vertikal oder diagonal über die Form ziehen. Im folgenden Codebeispiel wird gezeigt, wie Sie eine Ellipse mit einem horizontalen Farbverlaufspinsel füllen, der sich vom linken Rand der Ellipse zum rechten Rand von Blau in Grün ändert.

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

Die folgende Abbildung zeigt die ausgefüllte Ellipse.

Screenshot of an ellipse filled with a horizontal gradient brush.

Ein Pfad-Farbverlaufspinsel kann so konfiguriert werden, dass sich die Farbe ändert, während Sie sich vom Mittelpunkt einer Form in Richtung des Rands bewegen.

Screenshot of an ellipse filled with a path gradient brush.

Pfad-Farbverlaufspinsel sind sehr flexibel. Der Farbverlaufspinsel, der zum Füllen des Dreiecks in der folgenden Abbildung verwendet wird, ändert sich graduell von Rot in der Mitte in jede der drei anderen Farben bis zu den Scheitelpunkten.

Screenshot of a triangle filled with a path gradient brush.

Siehe auch