Procedura: riempire una forma con immagini affiancate
Proprio come le piastrelle possono essere posizionate l'una accanto all'altra per coprire un pavimento, immagini rettangolari possono essere posizionate l'una accanto all'altra per riempire (riquadro) una forma. Per affiancare l'interno di una forma, usare un pennello di trama. Quando si costruisce un TextureBrush oggetto, uno degli argomenti passati al costruttore è un Image oggetto . Quando si utilizza il pennello trama per disegnare l'interno di una forma, la forma viene riempita con copie ripetute di questa immagine.
La proprietà modalità di wrapping dell'oggetto TextureBrush determina il modo in cui l'immagine viene orientata come viene ripetuta in una griglia rettangolare. È possibile fare in modo che tutti i riquadri nella griglia abbiano lo stesso orientamento oppure è possibile capovolgere l'immagine da una posizione della griglia alla successiva. Lo scorrimento può essere orizzontale, verticale o entrambi. Gli esempi seguenti illustrano l'associazione con tipi diversi di capovolgimento.
Per riquadri di un'immagine
- In questo esempio viene utilizzata l'immagine 75×75 seguente per affiancare un rettangolo 200×200.
- La figura seguente mostra come viene affiancato il rettangolo con l'immagine. Si noti che tutti i riquadri hanno lo stesso orientamento; non c'è alcun capovolgimento.
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))
Per capovolgere un'immagine orizzontalmente mentre si collega
- In questo esempio viene utilizzata la stessa immagine 75×75 per riempire un rettangolo 200×200. La modalità di wrapping è impostata per capovolgere l'immagine orizzontalmente. La figura seguente mostra come viene affiancato il rettangolo con l'immagine. Si noti che quando si passa da un riquadro al successivo in una determinata riga, l'immagine viene capovolta orizzontalmente.
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))
Per capovolgere un'immagine verticalmente mentre si collega
In questo esempio viene utilizzata la stessa immagine 75×75 per riempire un rettangolo 200×200. La modalità di ritorno a capo è impostata per capovolgere l'immagine verticalmente.
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))
Per capovolgere un'immagine orizzontalmente e verticalmente mentre si collega
- Questo esempio usa la stessa immagine 75×75 per affiancare un rettangolo 200×200. La modalità di ritorno a capo è impostata per capovolgere l'immagine sia orizzontalmente che verticalmente. La figura seguente mostra come il rettangolo viene affiancato dall'immagine. Si noti che quando si passa da un riquadro all'altro in una determinata riga, l'immagine viene capovolta orizzontalmente e quando si passa da un riquadro al successivo in una determinata colonna, l'immagine viene capovolta verticalmente.
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))
Vedi anche
.NET Desktop feedback