Porady: wypełnianie kafelków w obrębie kształtu obrazem
Podobnie jak kafelki można umieścić obok siebie, aby pokryć podłogę, prostokątne obrazy można umieścić obok siebie w celu wypełnienia (kafelka) kształtu. Aby utworzyć kafelek wnętrza kształtu, użyj pędzla tekstury. Podczas konstruowania TextureBrush obiektu jeden z argumentów przekazywanych do konstruktora jest obiektem Image . Gdy używasz pędzla tekstury do malowania wnętrza kształtu, kształt jest wypełniony powtarzającymi się kopiami tego obrazu.
Właściwość TextureBrush trybu zawijania obiektu określa, jak obraz jest zorientowany, gdy jest powtarzany w siatce prostokątnej. Możesz ustawić, że wszystkie kafelki w siatce mają taką samą orientację, lub możesz przerzucić obraz z jednej pozycji siatki do następnej. Przerzucanie może być poziome, pionowe lub oba. W poniższych przykładach pokazano tiling z różnymi typami przerzucania.
Aby na kafelku obraz
- W tym przykładzie użyto następującego obrazu 75×75 do kafelka prostokąta 200×200.
- Na poniższej ilustracji przedstawiono sposób kafelka prostokąta z obrazem. Należy pamiętać, że wszystkie kafelki mają taką samą orientację; nie ma przerzucania.
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))
Aby przerzucić obraz w poziomie podczas układania
- W tym przykładzie użyto tego samego obrazu 75×75, aby wypełnić prostokąt 200×200. Tryb zawijania jest ustawiony na przerzucanie obrazu w poziomie. Na poniższej ilustracji przedstawiono sposób kafelka prostokąta z obrazem. Pamiętaj, że w miarę przechodzenia z jednego kafelka do następnego w danym wierszu obraz jest przerzucany w poziomie.
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))
Aby przerzucić obraz w pionie podczas układania
W tym przykładzie użyto tego samego obrazu 75×75, aby wypełnić prostokąt 200×200. Tryb zawijania jest ustawiony na przerzucanie obrazu w pionie.
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))
Aby przerzucić obraz w poziomie i w pionie podczas układania kafelków
- W tym przykładzie użyto tego samego obrazu 75×75 do kafelka prostokąta 200×200. Tryb zawijania jest ustawiony na przerzucanie obrazu zarówno w poziomie, jak i w pionie. Na poniższej ilustracji pokazano, jak prostokąt jest kafelkowany przez obraz. Pamiętaj, że w miarę przechodzenia z jednego kafelka do następnego w danym wierszu obraz jest przerzucany w poziomie i w miarę przechodzenia z jednego kafelka do następnego w danej kolumnie obraz jest przerzucany w pionie.
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))
Zobacz też
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla