Dela via


Gör så här: Fyll en form med en bildstruktur

Du kan fylla en sluten form med en struktur med hjälp av klassen Image och klassen TextureBrush.

Exempel

I följande exempel fylls en ellips med en bild. Koden konstruerar ett Image objekt och skickar sedan adressen till det Image objektet som ett argument till en TextureBrush konstruktor. Den tredje instruktionen skalar bilden och den fjärde instruktionen fyller ellipsen med upprepade kopior av den skalade bilden.

I följande kod innehåller egenskapen Transform den transformering som tillämpas på bilden innan den ritas. Anta att den ursprungliga bilden har en bredd på 640 bildpunkter och en höjd på 480 bildpunkter. Transformeringen krymper bilden till 75×75 genom att ange vågräta och lodräta skalningsvärden.

Not

I följande exempel är bildstorleken 75×75 och ellipsstorleken är 150×250. Eftersom bilden är mindre än den ellips den fyller, är ellipsen sida vid sida med bilden. Plattsättning innebär att bilden upprepas vågrätt och lodrätt tills formens gräns har nåtts. För mer information om hur man kaklar en form med en bild finns i Hur gör man: Kakala en form med en 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))

Kompilera koden

Föregående exempel är utformat för användning med Windows Forms och kräver PaintEventArgse, som är en parameter för Paint händelsehanterare.

Se även