【问题标题】:How can I set an image background to repeat?如何设置图像背景以重复?
【发布时间】:2011-09-02 03:23:03
【问题描述】:
我正在尝试将图像背景设置为沿我的整个网格重复。这是一张小图片,加入了一些随机噪声以赋予其纹理。
目前这是我正在做的事情:
<Grid.Background>
<ImageBrush ImageSource="Images/mainBg.png" Stretch="UniformToFill" />
</Grid.Background>
但这会炸毁图像并使噪点看起来很糟糕。我想让图像在 X 和 Y 轴上重复以填充它可以填充的空间。
这可能吗?
【问题讨论】:
标签:
image
xaml
windows-phone-7
background
repeat
【解决方案1】:
简答:
无法在手机上创建图块。
长答案:
你甚至不应该在电话上尝试这个。由于(假设)您知道要在设计时平铺的图像,您应该创建一个更大的图像,其中包括设计时的平铺效果。这将减少您的应用需要完成的工作量,使其运行得更快。
如果您确实必须在运行时执行此操作。如果 WrapPanel 中的图像(来自 Silverlight 工具包),您可以添加一个数字。您可能想尝试将每个图像的源代码从后面的代码设置为图像的内存实例中的相同,以节省资源/内存。 (这只是一个想法 - 测试它! - 它甚至可能不是问题。)
【解决方案2】:
您需要使用此代码
<ImageBrush ImageSource="xyz.png" Stretch="None" TileMode="Tile"/>
不幸的是,TileMode 仅适用于 WPF。在我看来微软的一个奇怪的决定。较大的图像意味着浪费内存。另外,您还有纵向/横向的问题。 WrapPanel 似乎也不是一个好的解决方案。