Freigeben über


Pinsel und gefüllte Formen

Eine geschlossene Figur wie ein Rechteck oder eine Ellipse besteht aus einer Kontur und einem Inneren. Die Kontur wird mit einem Pen--Objekt gezeichnet, und der Innenbereich wird mit einem Brush-Objekt gefüllt. Windows GDI+ bietet mehrere Pinselklassen zum Ausfüllen der Innenräume geschlossener Figuren: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrushund PathGradientBrush. Alle diese Klassen erben von der Brush Klasse. Die folgende Abbildung zeigt ein Rechteck, das mit einem einfarbigen Pinsel gefüllt ist, und eine mit einem Schlupfpinsel gefüllte Auslassungspunkte.

Abbildung mit einem blauen Rechteck und einer Magenta-Ellipse gefüllt mit einem blauen Schlupfmuster

 

Einfarbige Pinsel

Zum Ausfüllen einer geschlossenen Form benötigen Sie ein Graphics-Objekt und ein Brush--Objekt. Das Graphics-Objekt stellt Methoden bereit, z. B. FillRectangle- und FillEllipse-, und das Brush--Objekt speichert Attribute der Füllung, z. B. Farbe und Muster. Die Adresse des Brush-Objekts wird als eines der Argumente an die Füllmethode übergeben. Im folgenden Beispiel wird eine Auslassungspunkte mit einer einfarbigen roten Farbe gefüllt.

SolidBrush mySolidBrush(Color(255, 255, 0, 0));
myGraphics.FillEllipse(&mySolidBrush, 0, 0, 60, 40);

Beachten Sie, dass der Pinsel im vorherigen Beispiel vom Typ SolidBrushist, der von Brusherbt.

Schlupfbürsten

Wenn Sie eine Form mit einem Schlupfpinsel füllen, geben Sie eine Vordergrundfarbe, eine Hintergrundfarbe und eine Schlupfart an. Die Vordergrundfarbe ist die Farbe des Schlupfens.

HatchBrush myHatchBrush(
   HatchStyleVertical, 
   Color(255, 0, 0, 255),
   Color(255, 0, 255, 0));

GDI+ bietet mehr als 50 Schlupfarten, die in HatchStyle-angegeben sind. Die in der folgenden Abbildung gezeigten drei Formatvorlagen sind "Horizontal", "ForwardDiagonal" und "Cross".

Abbildung mit drei tealfarbigen Auslassungszeichen, die jeweils mit einem anderen Schlupfstil

 

Texturpinsel

Mit einem Texturpinsel können Sie eine Form mit einem Muster füllen, das in einer Bitmap gespeichert ist. Angenommen, die folgende Grafik wird in einer Datenträgerdatei mit dem Namen MyTexture.bmpgespeichert.

Screenshot eines kleinen Quadrats mit verschiedenen Farben

Im folgenden Beispiel wird eine Auslassungspunkte gefüllt, indem das in MyTexture.bmpgespeicherte Bild wiederholt wird.

Image myImage(L"MyTexture.bmp");
TextureBrush myTextureBrush(&myImage);
myGraphics.FillEllipse(&myTextureBrush, 0, 0, 100, 50);

Die folgende Abbildung zeigt die gefüllte Auslassungspunkte.

Abbildung einer Ellipse, die mit dem zuvor definierten Muster gefüllt ist

 

Farbverlaufpinsel

Sie können einen Farbverlaufpinsel verwenden, um eine Form mit einer Farbe zu füllen, die sich schrittweise von einem Teil der Form in einen anderen ändert. Ein horizontaler Farbverlaufpinsel ändert z. B. die Farbe, wenn Sie von der linken Seite einer Abbildung zur rechten Seite wechseln. Im folgenden Beispiel wird eine Ellipse mit einem horizontalen Farbverlaufpinsel gefüllt, der sich von Blau zu Grün ändert, während Sie von der linken Seite der Auslassungspunkte zur rechten Seite wechseln.

LinearGradientBrush myLinearGradientBrush(
   myRect,
   Color(255, 0, 0, 255),
   Color(255, 0, 255, 0),
   LinearGradientModeHorizontal);
myGraphics.FillEllipse(&myLinearGradientBrush, myRect); 

Die folgende Abbildung zeigt die gefüllte Auslassungspunkte.

Abbildung einer Ellipse mit einer Farbverlaufsfüllung: blau auf der rechten bis grünen

Ein Pfadfarbverlaufpinsel kann so konfiguriert werden, dass die Farbe geändert wird, während Sie von der Mitte einer Figur zur Grenze wechseln.

Belustigung einer Ellipse, die dunkelblau in der Mitte ist, schattiert auf hellblau am Rand

Pfadverlaufpinsel sind ziemlich flexibel. Der Farbverlaufpinsel, der zum Ausfüllen des Dreiecks in der folgenden Abbildung verwendet wird, ändert sich allmählich von Rot in der Mitte zu jeder von drei verschiedenen Farben an den Scheitelpunkten.

Abbildung eines Dreiecks, das rot in der Mitte ist, schattierung auf eine andere Farbe bei jedem Scheitelpunkt