我有一个显示图片列表的应用。图像源设置为http URL,图像将被下载并自动显示。
然而,虽然应用程序需要时间下载,但图像控件没有显示任何内容。这种用户体验并不好。
如何为每个图像控件显示加载占位符图像或加载计量器?
答案 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
如果感兴趣,可以在此讨论的一些背景知识。