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";

如何确定图像是否已加载?

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

4

3 回答 3

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)

于 2013-08-21T08:41:07.870 回答
0

我不知道检查图像是否已加载。但这里是图像的样本是否存在

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


try
{
    request.GetResponse();
    return true;
}
catch
{
   return false; 
}
于 2013-08-21T07:59:25.973 回答
0

是的,多亏了 Fabrice,正确的答案是:

   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;
                            };
于 2013-08-21T08:22:55.323 回答