Nasıl yapılır: Bir Şekli Resimle Döşeme
Bir zemini kaplamak için yan yana karo döşendiği gibi, bir şekli doldurmak 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 nesnesi oluşturduğunuzda, oluşturucuya geçirdiğiniz bağımsız değişkenlerden biri bir Image nesnesidir. 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.
TextureBrush nesnesinin tekrarlama modu özelliği, görüntünün dikdörtgen bir ızgarada yinelenirken 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 yöntemleriyle döşeme yapma gösterilmektedir.
Bir resmi 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.
- Aşağıdaki çizimde, dikdörtgenin resimle nasıl döşendiği gösterilmektedir. Tüm kutucukların aynı yönlendirmeye sahip olduğunu unutmayın; çevirme diye bir şey yoktur.
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 döşendiği gösterilmektedir. Belirli bir satırda bir karodan diğerine geçerken resmin yatay olarak çevrildiğini hatırlayın.
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.
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.
.NET Desktop feedback