检查是否已经加载了

问题描述:

你好,我有这样的代码:检查是否已经加载了

BitmapImage image = new BitmapImage(new Uri(contact.PreviewPhoto, UriKind.Relative)); 
a.photo.Source = image; 

contact.PreviewPhoto="https://files.test.lv/public/photos/h66/38B83D35-15B5-4872-8CE5-F3E50001E921.jpg"; 

我怎么能确定是否已经加载了?

因为有时互联网连接可能会丢失,或者链接是空白的,在这种情况下如何替换它?

+0

检查ImageOpened事件:http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.controls.image.imageopened(v=vs.105).aspx – Fabrice

我不知道检查图像有loade。但这里是图像的样品存在或不

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("YourImageUrl"); 
request.Method = "HEAD"; 


try 
{ 
    request.GetResponse(); 
    return true; 
} 
catch 
{ 
    return false; 
} 

是,由于法布里斯,正确的答案是:

BitmapImage image = new BitmapImage(new Uri(contact.PreviewPhoto)); 
          image.ImageFailed += (s, e) => 
          { 
           image = new BitmapImage(new Uri("/no-picture.png", UriKind.Relative)); 
           a.photo.Source = image; 
          }; 

看来你更找不加载,而不是加载...

您可以收听BitmapImage的事件,如DecodeFailed或DownloadFailed:(msdn.microsoft.com/library/system.windows.media.imaging.bitmapimage_events.aspx)。

如果a.photo是Image类型,那么您还可以侦听事件ImageFailed和ImageOpened(msdn.microsoft.com/library/windowsphone/develop/system.windows.controls.image_events(v=vs.105) ).aspx)