Sdílet prostřednictvím


Jak vyplnit obrazec obrázkem

Stejně jako dlaždice lze umístit vedle sebe, aby pokrývaly podlahu, lze obdélníkové obrázky umístit vedle sebe a vyplnit (dlaždice) obrazec. Pro vydláždění vnitřku obrazce použijte texturový štětec. Při vytváření TextureBrush objektu je jedním z argumentů, které předáte konstruktoru, Image objekt. Když použijete texturový štětec k malování interiéru obrazce, obrazec se vyplní opakovanými kopiemi tohoto obrázku.

Vlastnost režimu zabalení objektu TextureBrush určuje, jak je obrázek orientovaný při opakování v obdélníkové síti. Můžete nastavit, aby všechny dlaždice v mřížce měly stejnou orientaci, nebo můžete obrázek překlopit z jedné pozice mřížky na další. Překlopení může být vodorovné, svislé nebo obojí. Následující příklady ukazují kladení dlaždic s různými typy překlopení.

Dlaždicovat obrázek

  • Tento příklad používá následující obrázek 75×75 pro vyplnění obdélníku 200×200.

Obrázek dlaždice, který zobrazuje červený dům a strom.

  • Následující ilustrace ukazuje, jak je obdélník pokryt obrázkem. Všimněte si, že všechny dlaždice mají stejnou orientaci; nepřeklopují se.

Obdélník poskládaný z obrázku, kde všechny dlaždice mají stejnou orientaci.

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

Překlopení obrázku vodorovně při dlaždicování

  • Tento příklad používá stejný obrázek 75×75 k vyplnění obdélníku 200×200. Režim obtékání je nastavený tak, aby překlopil obrázek vodorovně. Následující obrázek ukazuje, jak je obdélník pokrytý obrázkem. Všimněte si, že při přechodu z jedné dlaždice na další v daném řádku se obrázek vodorovně překlopí.

obdélník s dlaždicí s obrázkem překlopeným vodorovně.

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

Překlopení obrázku vertikálně při dlaždicování

  • Tento příklad používá stejný obrázek 75×75 k vyplnění obdélníku 200×200. Režim obtékání je nastavený tak, aby překlopil obrázek svisle.

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

Překlopení obrázku vodorovně a svisle při dlaždicování

  • Tento příklad používá obrázek 75×75 k vyplnění obdélníku 200×200. Režim obtékání je nastavený tak, aby překlopil obrázek vodorovně i svisle. Následující obrázek znázorňuje, jak je obdélník pokryt obrázkem. Všimněte si, že při přechodu z jedné dlaždice na další v daném řádku se obrázek vodorovně překlopí a při přechodu z jedné dlaždice na další v daném sloupci se obrázek překlopí svisle.

obdélník s dlaždicí s obrázkem překlopeným vodorovně a svisle.

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

Viz také