我希望将一张带有随机噪声纹理的小图片设置为整个网格的背景并重复出现。
目前我的做法如下:
<Grid.Background>
<ImageBrush ImageSource="Images/mainBg.png" Stretch="UniformToFill" />
</Grid.Background>
但是这会放大图像,使噪点看起来很糟糕。我希望将图像在X和Y轴上重复以填充它可以的空间。这是否可能?
我希望将一张带有随机噪声纹理的小图片设置为整个网格的背景并重复出现。
目前我的做法如下:
<Grid.Background>
<ImageBrush ImageSource="Images/mainBg.png" Stretch="UniformToFill" />
</Grid.Background>
简短回答:
无法在手机上创建图像平铺。
详细回答:
您甚至不应该在手机上尝试此操作。如果您在设计时知道要平铺的图像,应该在设计时创建一个包含平铺效果的更大图像。这将减少应用程序需要执行的工作量,使其运行更快。
如果您真的必须在运行时执行此操作。您可以在WrapPanel(来自Silverlight Toolkit)中添加多个图像。您可能需要尝试从代码后台设置每个图像的源以保存资源/内存中相同的图像实例。 (这只是一种想法-测试一下!-它可能根本不是问题。)
<ImageBrush ImageSource="xyz.png" Stretch="None" TileMode="Tile"/>
不幸的是,TileMode仅适用于WPF。这对于微软来说似乎是一个奇怪的决定。更大的图像意味着浪费内存。此外,您还需要解决纵向/横向的问题。WrapPanel也不是一个好的解决方案。