Silverlight 如何为图像控件设置占位符(下载时)?

Silverlight 如何为图像控件设置占位符(下载时)?,silverlight,image,windows-phone-7,Silverlight,Image,Windows Phone 7,我有一个显示图像列表的应用程序。图像源设置为http URL,图像将自动下载和显示 然而,当应用程序需要时间下载时,图像控件却没有显示任何内容。这样的用户体验不好 如何为每个图像控件显示加载占位符图像或加载量表?您可以将图像源设置为占位符,然后当ImageOpen启动时,将其更改为远程url并让其运行。加载图像时,图像以透明方式绘制。在加载图像时,您可以利用它在图像下方显示元素。例如,您可以有一个股票图像,它与代表默认化身的XAP捆绑在一起。或者可以显示XAML加载动画。然后,当图像加载完成时,

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

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


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

您可以将图像源设置为占位符,然后当ImageOpen启动时,将其更改为远程url并让其运行。

加载图像时,图像以透明方式绘制。在加载图像时,您可以利用它在图像下方显示元素。例如,您可以有一个股票图像,它与代表默认化身的XAP捆绑在一起。或者可以显示XAML加载动画。然后,当图像加载完成时,它将遮挡其后面的元素


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

除了其他两个建议(来自Josh和Mick),您可以在xaml中显示占位符,然后在代码中,使用
HttpWebRequest
在后台下载实际需要的图像。然后,当图像完全下载后,将其保存到独立存储器中,然后将源更新为显示的图像

是的,这比其他解决方案更复杂,但会简化视觉树,并避免在下载图像时显示空白图像。

它还将为您提供图像的脱机缓存。

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

您可能还想考虑Ben Gracewood的图像缓存实现,或者在他的博客评论中似乎是关于这个想法的发展。

如果有兴趣的话,这里有一些关于讨论的背景


谢谢你,米克。我尝试先将图像源设置为占位符。然后,当我将源设置为远程url时,图像在下载时会有一段时间是空的。可以更好吗?您可以在最初使用两个不同的图像控件创建一个UserControl。不再需要时,可以按z顺序删除/隐藏/隐藏占位符实例。我考虑先发布这篇文章,然后认为上面的内容可能更优雅。是的,我也更喜欢更优雅的东西:)我想这样做。如果没有更好的解决办法,我会这样做。谢谢