Procedura: riempire una forma con immagini affiancate
Per riempire una forma è possibile collocare una accanto all'altra, ovvero affiancare, immagini di forma rettangolare. Per riempire l'interno di una forma utilizzare un pennello a trama. Quando si costruisce un oggetto TextureBrush tra gli argomenti passati al costruttore è presente un oggetto Image. Quando si utilizza il pennello a trama per l'interno di una forma questa viene riempita con copie ripetute dell'immagine.
La proprietà Wrap Mode dell'oggetto TextureBrush determina l'orientamento dell'immagine quando viene ripetuta in una griglia rettangolare. È possibile fare in modo che tutte le immagini affiancate della griglia abbiano lo stesso orientamento, oppure che ogni immagine in una posizione della griglia sia capovolta rispetto alla precedente. Il capovolgimento può essere in orizzontale, in verticale o in entrambi i sensi. Negli esempi che seguono si illustra l'affiancamento con tipi diversi di capovolgimento.
Per affiancare un'immagine
- Nell'esempio l'immagine 75×75 riportata di seguito viene affiancata all'interno di un rettangolo 200×200.
- Nell'illustrazione che segue si mostra come il rettangolo viene utilizzato per riempire l'immagine. Si noti che tutte le immagini affiancate hanno lo stesso orientamento. Non è stato applicato nessun capovolgimento.
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))
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));
Per capovolgere un'immagine orizzontalmente durante l'affiancamento
- In questo esempio la stessa immagine 75×75 viene utilizzata per riempire un rettangolo 200×200. La modalità di wrap è impostata in modo che l'immagine sia capovolta orizzontalmente. Nell'illustrazione che segue si mostra come il rettangolo viene utilizzato per riempire l'immagine. Si noti che, spostandosi da un'immagine all'altra in una riga data, l'immagine si capovolge orizzontalmente.
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))
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));
Per capovolgere un'immagine verticalmente durante l'affiancamento
In questo esempio la stessa immagine 75×75 viene utilizzata per riempire un rettangolo 200×200. La modalità di wrap è impostata in modo che l'immagine sia capovolta verticalmente.
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))
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));
Per capovolgere un'immagine orizzontalmente e verticalmente durante l'affiancamento
- In questo esempio la stessa immagine 75×75 viene affiancata all'interno di un rettangolo 200×200. La modalità di wrap è impostata in modo che l'immagine sia capovolta sia orizzontalmente sia verticalmente. Nell'illustrazione che segue si mostra come il rettangolo viene utilizzato per riempire l'immagine. Si noti che, spostandosi da un'immagine alla successiva in una riga data, l'immagine si capovolge orizzontalmente, mentre spostandosi da un'immagine alla successiva in una colonna data, l'immagine si capovolge verticalmente.
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))
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));