Aracılığıyla paylaş


Nasıl yapılır: Bir Şekli Bir Resimle Döşeme

Bir zemini kaplamak için yan yana kutucuklar yerleştirilebildiği gibi, şekli doldurmak (döşeme) için yan yana dikdörtgen görüntüler yerleştirilebilir. Şeklin içini döşemek için doku fırçası kullanın. Bir TextureBrush nesne oluşturduğunuzda, oluşturucuya geçirdiğiniz bağımsız değişkenlerden biri bir Image nesnedir. Bir şeklin içini boyamak için doku fırçasını kullandığınızda, şekil bu görüntünün yinelenen kopyalarıyla doldurulur.

Nesnenin TextureBrush kaydırma modu özelliği, dikdörtgen bir kılavuzda yinelendiğinden görüntünün nasıl yönlendirileceğini belirler. Kılavuzdaki tüm kutucukların aynı yönlendirmeye sahip olmasını sağlayabilir veya görüntünün bir kılavuz konumundan diğerine çevrilmesini sağlayabilirsiniz. Çevirme yatay, dikey veya her ikisi de olabilir. Aşağıdaki örneklerde farklı türlerde çevirme ile döşeme gösterilmektedir.

Resim döşemek için

  • Bu örnek, 200×200 dikdörtgeni döşemek için aşağıdaki 75×75 görüntüsünü kullanır.

The tile image that shows a red house and a tree.

  • Aşağıdaki çizimde dikdörtgenin resimle nasıl kutucuklanmış olduğu gösterilmektedir. Tüm kutucukların aynı yönlendirmeye sahip olduğunu unutmayın; çevirme diye bir şey yoktur.

A rectangle tiled with the image using the same orientation for all tiles.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Döşeme sırasında bir görüntüyü yatay olarak çevirmek için

  • Bu örnek, 200×200 dikdörtgenini doldurmak için aynı 75×75 görüntüsünü kullanır. Kaydırma modu, görüntüyü yatay olarak çevirecek şekilde ayarlanır. Aşağıdaki çizimde dikdörtgenin resimle nasıl kutucuklanmış olduğu gösterilmektedir. Belirli bir satırda bir kutucuktan diğerine geçtikçe resmin yatay olarak çevrildiğini unutmayın.

A rectangle tiled with the image flipped horizontally.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipX;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipX
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Döşeme sırasında bir görüntüyü dikey olarak çevirmek için

  • Bu örnek, 200×200 dikdörtgenini doldurmak için aynı 75×75 görüntüsünü kullanır. Kaydırma modu, görüntüyü dikey olarak çevirecek şekilde ayarlanır.

    Image image = new Bitmap("HouseAndTree.gif");
    TextureBrush tBrush = new TextureBrush(image);
    Pen blackPen = new Pen(Color.Black);
    tBrush.WrapMode = WrapMode.TileFlipY;
    e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
    e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
    
    Dim image As New Bitmap("HouseAndTree.gif")
    Dim tBrush As New TextureBrush(image)
    Dim blackPen As New Pen(Color.Black)
    tBrush.WrapMode = WrapMode.TileFlipY
    e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
    e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
    
    

Döşeme sırasında bir görüntüyü yatay ve dikey olarak çevirmek için

  • Bu örnek, 200×200 dikdörtgeni döşemek için aynı 75×75 görüntüsünü kullanır. Kaydırma modu, görüntüyü hem yatay hem de dikey olarak çevirecek şekilde ayarlanır. Aşağıdaki çizimde dikdörtgenin görüntü tarafından nasıl kutucuklara ayrılmış olduğu gösterilmektedir. Belirli bir satırda bir kutucuktan diğerine geçtikçe resmin yatay olarak çevrildiğini ve belirli bir sütunda bir kutucuktan diğerine geçtikçe resmin dikey olarak çevrildiğini unutmayın.

A rectangle tiled with the image flipped horizontally and vertically.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipXY;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipXY
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Ayrıca bkz.