首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DataTemplate中显示不同的图像?

问如何在DataTemplate中显示不同的图像?
EN

Stack Overflow用户
提问于 2015-05-28 21:36:57
回答 4查看 71关注 0票数 0

在DataTemplate of a ListView中,我有以下代码

代码语言:javascript
复制
<Image Grid.Column = "1" Grid.ColumnSpan = "2" Grid.Row = "0" Source = "{Binding Picture}" VerticalAlignment = "center" />

我是一个绑定图片属性的人。此属性是一个字符串,其地址指向web上的图像。在没有互联网连接的情况下,如何显示项目中的图像?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-28 21:47:49

一种快速的方法是订阅ImageFailed事件:

代码语言:javascript
复制
<Image Source="{Binding Picture}" ImageFailed="ImageFailed" />

然后,在事件处理程序中,将Source属性更改为本地图片:

代码语言:javascript
复制
private void ImageFailed(object sender, ExceptionRoutedEventArgs e)
{
    ((Image)sender).Source = new BitmapImage(new Uri("ms-appx:///Assets/WideLogo.scale-240.png"));
}
票数 1
EN

Stack Overflow用户

发布于 2015-05-28 21:48:18

这链接声明有一个Image.ImageFailed事件。可以在其处理程序中设置另一个源。

或者,您可以在视图模型代码中检查internet连接,并将图片值设置为类似于"ms-appx:///Assets/image_name.png"的内容。

票数 1
EN

Stack Overflow用户

发布于 2015-05-29 01:16:59

根据用例(比如在GridView中显示图像,您知道目标图像大小),另一个选项是始终显示默认图像,然后如果下载了正确的图像,它将显示在默认图像的顶部。

只需列出两张图片,第二张将显示在第一张图片的顶部。

代码语言:javascript
复制
<Grid>
   <Image Source="{Binding DefaultPicture}" />
   <Image Source="{Binding Picture}" />
</Grid>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30517518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档