Pinsel und gefüllte Formen in GDI+

Eine geschlossene Form, z. B.ein Rechteck oder eine Ellipse, besteht aus einem Umriss und einer Innenfläche. Der Umriss wird mit einem Stift gezeichnet und die Innenfläche mit einem Pinsel gefüllt. GDI+ bietet mehrere Pinselklassen, um die Innenflächen geschlossener Formen zu füllen: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush und PathGradientBrush. Alle diese Klassen erben von der Brush-Klasse. Die folgende Abbildung zeigt ein Rechteck, das mit einem Pinsel für eine Volltonfarbe gefüllt wurde, und eine Ellipse, die mit einem Pinsel für eine Schraffur gefüllt wurde.

Ausgefüllte Formen

Pinsel für Volltonfarben

Um eine geschlossene Form zu füllen, benötigen Sie eine Instanz der Graphics-Klasse sowie Brush. Die Instanz der Graphics-Klasse stellt Methoden, wie FillRectangle und FillEllipse, bereit, und in Brush werden Attribute für die Füllung, beispielsweise Farbe und Muster, gespeichert. Brush wird als eines der Argumente an die Füllmethode übergeben. Im folgenden Codebeispiel wird gezeigt, wie Sie eine Ellipse mit der Volltonfarbe Rot füllen.

        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);

Tipp

Im vorangehenden Beispiel hat der Pinsel den Typ SolidBrush, der von Brush erbt.

Pinsel für Schraffuren

Wenn Sie eine Form mit einem Pinsel für eine Schraffur füllen, geben Sie eine Vordergrund- und eine Hintergrundfarbe sowie einen Schraffurstil an. Die Vordergrundfarbe ist die Farbe der Schraffur.

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

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

GDI+ stellt mehr als 50 Schraffurstile bereit. In der folgenden Abbildung sind die drei Stile Horizontal, ForwardDiagonal und Cross dargestellt.

Ausgefüllte Formen

Pinsel für Texturen

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

Ausgefüllte Form

Im folgenden Codebeispiel wird gezeigt, wie eine Ellipse durch Wiederholen des in MyTexture.bmp gespeicherten Bildes gefüllt wird.

        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);

In der folgenden Abbildung ist die ausgefüllte Ellipse dargestellt.

Ausgefüllte Form

Pinsel für Farbverläufe

GDI+ bietet zwei Arten von Farbverlaufpinseln: linear und pfadbezogen. Sie können mit einem Pinsel für einen linearen Farbverlauf eine Form mit Farbe füllen, die in horizontaler, vertikaler oder diagonaler Richtung schrittweise in eine andere Farbe übergeht. Im folgenden Codebeispiel wird eine Ellipse mit einem Pinsel für einen horizontalen Farbverlauf gefüllt, bei dem die Farbe vom linken Rand der Ellipse zum rechten von Blau in Grün übergeht.

        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);

In der folgenden Abbildung ist die ausgefüllte Ellipse dargestellt.

Ausgefüllte Form

Sie können einen Pinsel für einen pfadbezogenen Farbverlauf konfigurieren, um einen Farbübergang vom Mittelpunkt einer Form aus nach außen zu erstellen.

Ausgefüllte Form

Pinsel für pfadbezogene Farbverläufe lassen sich sehr flexibel verwenden. Der Farbverlaufpinsel, der zum Füllen des Dreiecks in der folgenden Abbildung verwendet wurde, erzeugt einen Farbübergang von Rot in der Mitte des Dreiecks zu den drei unterschiedlichen Farben in den verschiedenen Ecken des Dreiecks.

Ausgefüllte Form

Siehe auch

Aufgaben

Gewusst wie: Zeichnen eines ausgefüllten Rechtecks in Windows Forms

Gewusst wie: Zeichnen einer ausgefüllten Ellipse in Windows Forms

Referenz

System.Drawing.SolidBrush

System.Drawing.Drawing2D.HatchBrush

System.Drawing.TextureBrush

System.Drawing.Drawing2D.LinearGradientBrush

Weitere Ressourcen

Linien, Kurven und Formen