2013-08-21 248 views
0

你好,我有這樣的代碼:檢查是否已經加載了

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

回答

0

我不知道檢查圖像有loade。但這裏是圖像的樣品存在或不

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


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

是,由於法布里斯,正確的答案是:

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; 
          }; 
0

看來你更找不加載,而不是加載...

您可以收聽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)