2010-03-16 7 views
12

J'ai obtenu le code ci-dessous qui essaie de charger une image du web dans un contrôle Image, quand je l'exécute, je reçois une erreur sur la ligne donnée qu'aucun accès au réseau n'est autorisé :Silverlight Windows Phone 7: Charger des images depuis l'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 pour Windows Phone 7

+1

Problème résolu. Silverlight ne prend pas en charge GIF, j'ai donc écrit une petite page qui convertit GIF en 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 –

Répondre

3

Je vois que vous récupérez l'image de ce site Dilbert.com ne dispose d'un fichier de stratégie de domaine croix?

+0

Windows Phone 7 Les applications Silverlight n'ont pas besoin d'une politique inter-domaines. Cette restriction est supprimée. Cette question n'était pas connue lorsque cette question et cette réponse ont été postées. utile aux autres - il ne supporte toujours pas le GIF. – RoguePlanetoid

0

Pouvez-vous nous donner la trace complète de la pile d'exceptions? l'erreur pourrait être que votre émulateur de téléphone n'a pas accès à Internet, ou ce pourrait être l'image sur le serveur dilbert qui n'autorise pas les demandes anonymes qui ne proviennent pas de leur site ... donc le conseil sur une solution différera :-)

12

Si vous tentez de télécharger du contenu avec WebClient, un fichier de stratégie d'accès client doit être présent sur le serveur source. Pour les images que vous pouvez éviter cette exigence en faisant comme ceci: -

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

+1, mais cela fonctionne-t-il encore puisque l'image est un .GIF? – Jacob

+0

@Jacob: A l'époque je n'ai pas remarqué que c'était un Gif. La réponse est non, les gifs ne sont pas supportés. Cela fonctionne avec l'URL modifiée de Lennie. – AnthonyWJones

+0

Oui, cela fonctionne bien avec les images JPG. Merci –