Freigeben über


Vorgehensweise: Ausfüllen einer Form mit einer Bildstruktur

Sie können eine geschlossene Form mit einer Textur füllen, indem Sie die Image-Klasse und 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 auf.

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 Pixeln und eine Höhe von 480 Pixeln aufweist. Die Transformation verkleinern das Bild auf 75 × 75, indem sie die horizontalen und vertikalen Skalierungswerte festlegen.

Hinweis

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

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

Kompilieren des Codes

Das obige Beispiel ist für die Verwendung mit Windows Forms konzipiert und erfordert PaintEventArgs e, einen Parameter des Paint-Ereignishandlers.

Siehe auch