Freigeben über


Vorgehensweise: Ausfüllen einer Form mit einer Bildtextur

Sie können eine geschlossene Form mit einer Textur füllen, indem Sie die Image Klasse und die TextureBrush Klasse verwenden.

Beispiel

Im folgenden Beispiel wird eine Ellipse mit einem Bild gefüllt. Der Code erstellt ein Image Objekt und übergibt dann die Adresse dieses Image Objekts als Argument an einen TextureBrush Konstruktor. Die dritte Anweisung skaliert das Bild, und die vierte Anweisung füllt die Ellipse mit wiederholten Kopien des skalierten Bilds.

Im folgenden Code enthält die Transform Eigenschaft die Transformation, die auf das Bild angewendet wird, bevor es gezeichnet wird. Gehen Sie davon aus, dass das ursprüngliche Bild eine Breite von 640 Pixel und eine Höhe von 480 Pixeln aufweist. Die Transformation verkleinert das Bild auf 75×75, indem die horizontalen und vertikalen Skalierungswerte festgelegt werden.

Hinweis

Im folgenden Beispiel beträgt die Bildgröße 75×75 und die Ellipsegröße 150×250. Da das Bild kleiner ist als die Ellipse, die es ausfüllt, wird die Ellipse mit dem Bild gekachelt. Die Tilung bedeutet, dass das Bild horizontal und vertikal wiederholt wird, bis die Grenze der Form erreicht ist. Weitere Informationen zum Kacheln finden Sie unter Anleitung: Eine Form mit einem Bild kacheln.

Image image = new Bitmap("ImageFile.jpg");
TextureBrush tBrush = new TextureBrush(image);
tBrush.Transform = new Matrix(
   75.0f / 640.0f,
   0.0f,
   0.0f,
   75.0f / 480.0f,
   0.0f,
   0.0f);
e.Graphics.FillEllipse(tBrush, new Rectangle(0, 150, 150, 250));
Dim image As New Bitmap("ImageFile.jpg")
Dim tBrush As New TextureBrush(image)
tBrush.Transform = New Matrix( _
   75.0F / 640.0F, _
   0.0F, _
   0.0F, _
   75.0F / 480.0F, _
   0.0F, _
   0.0F)
e.Graphics.FillEllipse(tBrush, New Rectangle(0, 150, 150, 250))

Code kompilieren

Das vorangehende Beispiel wurde für die Verwendung mit Windows Forms entwickelt und erfordert PaintEventArgse, bei dem es sich um einen Parameter des Paint-Ereignishandlers handelt.

Siehe auch