如何设置Image控件的占位符(下载时)?

时间:2010-12-14 03:54:56

标签: silverlight image windows-phone-7

我有一个显示图片列表的应用。图像源设置为http URL,图像将被下载并自动显示。

然而,虽然应用程序需要时间下载,但图像控件没有显示任何内容。这种用户体验并不好。

如何为每个图像控件显示加载占位符图像或加载计量器?

4 个答案:

答案 0 :(得分:5)

正在加载图像时,它会被透明地绘制。您可以利用此功能在加载图像时在图像下方显示元素。例如,您可以拥有与XAP捆绑在一起的股票图像,例如代表默认头像。或者您可以显示XAML加载动画。然后当图像加载完毕时,它会遮挡它背后的元素。

如果你需要最小化你的可视化树,并且你的场景允许代码解决方案,那么Mick的建议是很好的。这个建议并不完美,但它确实可以更容易地处理占位符图像未缩放/居中但加载的图像被缩放/拉伸的情况。

答案 1 :(得分:2)

您可以将图像源设置为占位符,然后在ImageOpened触发时,将其更改为远程URL并让它运行它。

答案 2 :(得分:0)

除了其他2条建议(来自Josh& Mick),您可以在xaml中显示占位符,然后在代码中使用HttpWebRequest在后​​台下载实际所需的图像。然后,当图像完全下载后,将其保存到隔离存储,然后将源更新为显示的图像。

是的,这比其他解决方案更复杂,但会简化可视树,避免在下载图像时显示空白图像。
它也可以让你离线缓存图像。

答案 3 :(得分:0)

有趣的是有多少选项可以解决这个问题。

您可能还想考虑Ben Gracewood的图像缓存实现,或者在他的博客评论中看起来似乎是对该想法的开发。

One-time Cached Images in Windows Phone 7 « Ben.geek.nz

Peter Nowaks Mobile Blog - “Intelligent” Image Caching for WP 7

如果感兴趣,可以在此讨论的一些背景知识。

Image control cache duration?