如何设置图像背景重复?

发布于 2024-11-09 18:02:52 字数 301 浏览 0 评论 0原文

我正在尝试设置图像背景以沿整个网格重复。这是一个小图像,其中有一些随机噪声以赋予其纹理。

目前,这就是我正在做的事情:

<Grid.Background>
    <ImageBrush ImageSource="Images/mainBg.png" Stretch="UniformToFill" />
</Grid.Background>

但这会放大图像并使噪点看起来很糟糕。我想让图像在 X 轴和 Y 轴上重复以填充它可以填充的空间。

这可能吗?

I'm trying to set an image background to repeat along my entire grid. It's a small image, with a bit of random noise in to give it texture.

Currently this is what I'm doing:

<Grid.Background>
    <ImageBrush ImageSource="Images/mainBg.png" Stretch="UniformToFill" />
</Grid.Background>

But this blows up the image and makes the noise look terrible. I'd like to have the image repeat itself on the X and Y axis to fill the space it can.

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风为裳 2024-11-16 18:02:52

简短回答:
无法在手机上创建图像图块。

长答案:
你甚至不应该在电话上尝试这个。由于(假设)您知道在设计时要平铺的图像,您应该创建一个更大的图像,其中包括设计时的平铺效果。这将减少您的应用程序需要执行的工作量,使其运行得更快。

如果您确实必须在运行时执行此操作。您可以在 WrapPanel 内添加图像编号(来自 Silverlight 工具包)。您可能想要尝试将每个图像的源从代码隐藏设置为图像的内存实例中的同一实例,以节省资源/内存。 (这只是一个想法 - 测试一下! - 它甚至可能不是问题。)

Short answer:
There is no way to create tiles of images on the phone.

Long answer:
You shouldn't even try this on the phone. As(suming) you know the image you want to tile at design time you should create a larger image which includes the tiled effect at design time. This will reduce the amount of work your app needs to do, allowing it to run faster.

If you really must do this at run time. You could add a number if images inside a WrapPanel (from the Silverlight Toolkit). You may want to experiment with setting the source of each image from code behind to the same in memory instance of the image to save resources/memory. (This is just a thought - Test it! - it may not even be an issue.)

快乐很简单 2024-11-16 18:02:52

您需要使用此代码

  <ImageBrush ImageSource="xyz.png" Stretch="None" TileMode="Tile"/>

,不幸的是 TileMode 仅适用于 WPF。在我看来,微软的决定很奇怪。较大的图像意味着浪费内存。另外你还有纵向/横向的问题。 WrapPanel 似乎也不是一个好的解决方案。

You would need to use this code

  <ImageBrush ImageSource="xyz.png" Stretch="None" TileMode="Tile"/>

Unfortunately TileMode works only in WPF. Looks to me a strange decision of Microsoft. Larger image means wasting of memory. Plus you have the problem of portrait/landscape. WrapPanel does not seem to be a nice solution either.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文