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.
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.
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.
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.
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.
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.
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.
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.Drawing2D.HatchBrush
System.Drawing.Drawing2D.LinearGradientBrush