我的画廊遇到了一些问题。首先,我下载所有缩略图以获得概述。但是当我点击图片时,首先我要显示缩略图并加载大图。完成后,我想将ImageSource更改为新图片。这是我的例子:
private BitmapImage picture;
public BitmapImage Picture
{
get
{
if (picture == null)
{
RequestBigpicture();
return Thumbnail;
}
return picture;
}
}
public void RequestBigpicture()
{
picture = new BitmapImage(new Uri("http://www.fun-hollywood.de/" + bigPicture, UriKind.Absolute));
picture.ImageOpened += pictureImage_ImageOpened;
}
void pictureImage_ImageOpened(object sender, System.Windows.RoutedEventArgs e)
{
NotifyPropertyChanged("Picture");
}
这不起作用,在RequestBitPicture中这部分(因为我在某处阅读)并不是更好:
picture = new BitmapImage(new Uri("http://www.fun-hollywood.de/" + bigPicture, UriKind.Absolute));
var pictureImage = new Image();
pictureImage.Source = picture;
pictureImage.ImageOpened += pictureImage_ImageOpened;
永远不会调用ImageOpened。怎样才能做到这一点?
答案 0 :(得分:2)
我认为您应该将BitmapImage.CreateOptions
属性设置为None
或BackgroundCreation
以立即触发图像下载。
因为默认值为DelayCreation
,这就是为什么您的图片不会被挂载而且ImageOpened
事件永远不会被触发的原因。