使用图像平铺形状
就像瓷砖可以一块紧挨着一块铺在地面上,矩形图像也可以一个挨着一个填充(平铺)到形状中。 若要平铺形状的内部,请使用纹理画笔。 构造 TextureBrush 对象时,传递给构造函数的参数之一是 Image 对象的地址。 使用纹理画笔绘制形状内部时,将在形状中填充此图像的重复副本。
TextureBrush 对象的包装模式属性确定图像在矩形网格中重复时的方向。 你可以使网格中的所有图块具有相同的方向,也可以让图像从一个网格位置翻转到另一个网格位置。 翻转可以沿水平方向、垂直方向或水平垂直方向。 以下示例演示了采用不同翻转类型的平铺操作。
平铺图像
此示例使用以下 75 ×75 图像平铺 200 ×200 矩形:
Image image(L"HouseAndTree.png");
TextureBrush tBrush(&image);
Pen blackPen(Color(255, 0, 0, 0));
stat = graphics.FillRectangle(&tBrush, Rect(0, 0, 200, 200));
stat = graphics.DrawRectangle(&blackPen, Rect(0, 0, 200, 200));
下图显示了如何使用图像平铺矩形。 注意,所有图块的方向都一样;没有翻转。
平铺时水平翻转图像
此示例使用 75 ×75 图像填充 200 ×200 矩形。 环绕模式设置为水平翻转图像。
Image image(L"HouseAndTree.png");
TextureBrush tBrush(&image);
Pen blackPen(Color(255, 0, 0, 0));
stat = tBrush.SetWrapMode(WrapModeTileFlipX);
stat = graphics.FillRectangle(&tBrush, Rect(0, 0, 200, 200));
stat = graphics.DrawRectangle(&blackPen, Rect(0, 0, 200, 200));
下图显示了如何使用图像平铺矩形。 请注意,从指定行中的一个图块移动到下一个图块时,图像将水平翻转。
平铺时垂直翻转图像
此示例使用 75 ×75 图像填充 200 ×200 矩形。 环绕模式设置为垂直翻转图像。
Image image(L"HouseAndTree.png");
TextureBrush tBrush(&image);
Pen blackPen(Color(255, 0, 0, 0));
stat = tBrush.SetWrapMode(WrapModeTileFlipY);
stat = graphics.FillRectangle(&tBrush, Rect(0, 0, 200, 200));
stat = graphics.DrawRectangle(&blackPen, Rect(0, 0, 200, 200));
下图显示了如何使用图像平铺矩形。 请注意,在给定列中从一个磁贴移动到下一个磁贴时,图像将垂直翻转。
平铺时水平和垂直翻转图像
此示例使用 75 ×75 图像平铺 200 ×200 矩形。 环绕模式设置为水平垂直翻转图像。
Image image(L"HouseAndTree.png");
TextureBrush tBrush(&image);
Pen blackPen(Color(255, 0, 0, 0));
stat = tBrush.SetWrapMode(WrapModeTileFlipXY);
stat = graphics.FillRectangle(&tBrush, Rect(0, 0, 200, 200));
stat = graphics.DrawRectangle(&blackPen, Rect(0, 0, 200, 200));
下图显示了图像是如何平铺矩形的。 注意,当你从指定行中的一个图块移动到下一个图块时,图像将水平翻转,当你从指定列中的一个图块移动到下一个图块时,图像将垂直翻转。