Partilhar via


Como: Uma forma com uma imagem de xadrez

Assim como o lado a lado pode ser colocada lado a lado para cobrir um andar, retangulares imagens podem ser colocadas lado a lado para preencher uma forma (quadrado). Para colocar lado a lado no interior de uma forma, use um pincel de textura. Quando você construir um TextureBrush o objeto, um dos argumentos que você passar para o construtor é um Image objeto. Ao usar o pincel de textura para pintar o interior de uma forma, a forma é preenchida com cópias repetidas dessa imagem.

A propriedade de modo de quebra automática da TextureBrush objeto determina como a imagem é orientada como ele é repetido em uma grade retangular. Você pode fazer tudo o que os ladrilhos na grade tem a mesma orientação, ou você pode fazer com que a imagem Inverter da posição de uma grade para o próximo. A inversão pode ser horizontal, vertical ou ambos. Os exemplos a seguir demonstram o lado a lado com tipos diferentes de inversão.

Para uma imagem de xadrez

  • Este exemplo usa a seguinte imagem 75 × 75 para um retângulo 200 × 200.

Ladrilho 1

  • A ilustração a seguir mostra como o retângulo fica lado a lado com a imagem. Observe que todas as peças têm a mesma orientação; Não há nenhuma inversão.

Ladrilho 2

        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));

Para inverter uma imagem horizontalmente ao lado a lado

  • Este exemplo usa a mesma imagem 75 × 75 para preencher um retângulo 200 × 200. O modo de quebra é definido para inverter a imagem horizontalmente. A ilustração a seguir mostra como o retângulo fica lado a lado com a imagem. Observe que, como mover de um ladrilho para o próximo em uma determinada linha, a imagem está invertida horizontalmente.

Ladrilho 3

        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));

Para inverter uma imagem verticalmente ao lado a lado

  • Este exemplo usa a mesma imagem 75 × 75 para preencher um retângulo 200 × 200. O modo de quebra é definido para inverter a imagem 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));
    

Para inverter uma imagem horizontalmente e verticalmente ao lado a lado

  • Este exemplo usa a mesma imagem 75 × 75 para um retângulo 200 × 200. O modo de quebra é definido para inverter a imagem horizontalmente e verticalmente. A ilustração a seguir mostra como o retângulo é lado a lado por imagem. Observe que ao mover de um ladrilho para o próximo em uma determinada linha, a imagem está invertida horizontalmente e como mover de um ladrilho para o próximo em uma determinada coluna, a imagem será invertida verticalmente.

Ladrilho 5

        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));

Consulte também

Outros recursos

Usando um pincel para preencher formas