如何通知属性改变后,图像打开

本文关键字:图像 改变 属性 何通知 通知 | 更新日期: 2023-09-27 18:17:27

我的图库有一些问题。首先,我下载了所有的缩略图。但是当我点击一张图片时,首先我想显示缩略图并加载大图。完成后,我想将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永远不会被调用。最好的方法是什么?

如何通知属性改变后,图像打开

我认为您应该将BitmapImage.CreateOptions属性设置为NoneBackgroundCreation,以立即触发图像下载。
因为默认值是DelayCreation,所以映像不会下载,ImageOpened事件也不会触发。