Silverlight Windows Phone 7:从URL加载图片
我得到了下面的代码,试图从网络加载图像到一个图像控件,当我运行它时,我得到一个错误在给定的行,没有网络访问被允许:Silverlight Windows Phone 7:从URL加载图片
private void button1_Click(object sender, RoutedEventArgs e)
{
WebClient webClientImgDownloader = new WebClient();
webClientImgDownloader.OpenReadCompleted += new OpenReadCompletedEventHandler(webClientImgDownloader_OpenReadCompleted);
webClientImgDownloader.OpenReadAsync(new Uri("http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/5000/100/85108/85108.strip.print.gif", UriKind.Absolute));
}
void webClientImgDownloader_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(e.Result); // ERROR HERE!
image1.Source = bitmap;
}
的Silverlight为Windows Phone 7
我看到你从检索的Dilbert.com
图像确实该网站有一个跨域策略文件?
Windows Phone 7 Silverlight应用程序不需要跨域策略此限制已被删除,但在发布此问题和答复时未知,这可能是因为对他人有用 - 但它仍然不支持GIF。 – RoguePlanetoid 2010-04-16 13:32:07
您能否给我们完整的异常堆栈跟踪?错误可能是您的手机模拟器无法访问互联网,或者它可能是dilbert服务器上的图像,它不允许来自其网站的匿名请求......所以对解决方案的指导将有所不同:-)
尝试使用WebClient下载内容需要客户端访问策略文件存在于源服务器上。对于图像,你可以通过做这样避免这种要求: -
private void button1_Click(object sender, RoutedEventArgs e)
{
Uri uri = new Uri("http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/5000/100/85108/85108.strip.print.gif", UriKind.Absolute)
image1.Source = new BitmapImage(uri);
}
+1,但是由于图像是.GIF,所以这仍然有效吗? – Jacob 2010-03-16 17:27:35
@Jacob:当时我没有注意到是一个Gif。答案是否定的,它不支持gifs。它确实与Lennie的修改过的URL一起工作。 – AnthonyWJones 2010-03-16 17:52:32
是的,它与JPG图像的工作很好。谢谢 – 2012-12-13 11:12:38
Silverlight不支持GIF仅限JPG,所以我写了:
www.lenniedevilliers.net/displaygif.aspx?link= http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/5000/100/85108/85108.strip.print.gif
displaygif.aspx页面将GIF转换为JPG格式。
如果您仍然觉得有必要使用WebClient,那么也会绕过客户端访问策略问题。 – AnthonyWJones 2010-03-16 15:31:47
问题已解决。 Silverlight不支持GIF,因此我写了一个将GIF转换为JPG的小页面:www.lenniedevilliers.net/displaygif.aspx?link=http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/ 80000/5000/100/85108/85108.strip.print.gif – 2010-03-16 15:24:05