检查是否已经加载了
问题描述:
你好,我有这样的代码:检查是否已经加载了
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";
我怎么能确定是否已经加载了?
因为有时互联网连接可能会丢失,或者链接是空白的,在这种情况下如何替换它?
答
我不知道检查图像有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)
检查ImageOpened事件:http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.controls.image.imageopened(v=vs.105).aspx – Fabrice