【发布时间】:2010-12-14 22:07:39
【问题描述】:
我有一个显示图像列表的应用程序。图片来源设置为http URL,图片自动下载显示。
但是,当应用程序需要一些时间下载时,图像控件没有显示任何内容。这样用户体验不好。
如何为每个图像控件显示加载占位符图像或加载量规?
【问题讨论】:
标签: silverlight image windows-phone-7
我有一个显示图像列表的应用程序。图片来源设置为http URL,图片自动下载显示。
但是,当应用程序需要一些时间下载时,图像控件没有显示任何内容。这样用户体验不好。
如何为每个图像控件显示加载占位符图像或加载量规?
【问题讨论】:
标签: silverlight image windows-phone-7
在加载图像时,它是透明绘制的。您可以利用它来在加载时在图像下方显示一个元素。例如,您可以有一个与 XAP 捆绑在一起的股票图像,它代表一个默认头像。或者,您可以显示 XAML 加载动画。然后当图片加载完成后,它会遮挡后面的元素。
如果您需要最小化您的可视化树并且您的场景允许使用代码解决方案,那么 Mick 的建议是一个很好的建议。这个建议并不完美,但它确实可以更轻松地处理占位符图像未缩放/居中但加载的图像被缩放/拉伸的情况。
【讨论】:
您可以将图像源设置为占位符,然后当 ImageOpened 触发时,将其更改为远程 url 并让它运行。
【讨论】:
除了 2 个其他建议(来自 Josh 和 Mick)之外,您还可以在 xaml 中显示一个占位符,然后在代码中使用 HttpWebRequest 在后台下载实际所需的图像。然后在图像完全下载后将其保存到独立存储中,然后将源更新为显示的图像。
是的,这比其他解决方案更复杂,但会简化视觉树并避免在下载图像时显示空白图像。
它还可以让您离线缓存图像。
【讨论】:
有趣的是有多少选项可以解决这个问题。
您可能还想考虑 Ben Gracewood 的图像缓存实现,或者在他的博客 cmets 中似乎是该想法的发展。
One-time Cached Images in Windows Phone 7 « Ben.geek.nz
Peter Nowaks Mobile Blog - “Intelligent” Image Caching for WP 7
如果感兴趣的话,这里有一些关于讨论的背景信息。
【讨论】: