在我的应用中,我从网址加载图片。
<Image Source="{Binding Image}" />
我想提前从当地加载一张小图片。完全下载远程图像后,替换或覆盖此本地图像。
有没有简单的方法来实现这个功能?
例如div中的多个背景图像。 http://css-tricks.com/stacking-order-of-multiple-backgrounds/
答案 0 :(得分:1)
这是达到你想要的最简单方法;
<Grid>
<Image Source="YourLocalImage" />
<Image Source="{Binding Image}" />
</Grid>
因此,在您的应用中加载您的网址图片之前,您的本地图片将会显示加载URL图像后,将显示该图像。看,如果这有帮助。
答案 1 :(得分:0)
不是xaml中的内置功能......但这可以解决问题
首先,将本地图像位置作为图像属性中的值。然后,您需要有一个Image下载完成事件,以便您可以检测何时从远程位置成功下载Image。
在此事件中,您可以替换Image属性值,以便更改UI中的图像。但请确保定义了Image的类已实现INotifyPropertyChanged接口。
public class MyData : INotifyPropertyChanged{
private string image;
public string Image {
set{
Notify("Image");
image = value;
}
get{ return image; }
}
public event PropertyChangedEventHandler PropertyChanged;
private void Notify(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}