2010-03-16 9 views
12

Ho ricevuto il codice seguente che sta tentando di caricare un'immagine dal web in un controllo Image, quando lo eseguo ricevo un errore sulla linea data che non è consentito l'accesso alla rete :Silverlight Windows Phone 7: carica le immagini dall'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 per Windows Phone 7

+1

Problema risolto. Silverlight non supporta GIF, quindi ho scritto una piccola pagina che converte GIF in 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 –

risposta

3

vedo che stai recuperando l'immagine da Dilbert.com non quel sito ha un file di criteri interdominio?

+0

Windows Phone 7 Le applicazioni Silverlight non necessitano di un criterio di dominio incrociato Questa restrizione viene rimossa, questo non era noto quando questa domanda e risposta è stata pubblicata, pensavo che questo potesse essere utile per gli altri - comunque non supporta GIF. – RoguePlanetoid

0

Puoi fornirci la traccia dello stack di eccezioni? l'errore potrebbe essere che il tuo emulatore di telefono non ha accesso a Internet, o potrebbe essere l'immagine sul server dilbert che non consente richieste anonime che non hanno avuto origine dal loro sito ... quindi le indicazioni su una soluzione saranno diverse :-)

12

Per tentare di scaricare il contenuto con WebClient è necessario che sul server di origine sia presente un file di criteri di accesso client. Per le immagini si può evitare questo requisito facendo in questo modo: -

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, ma funziona ancora perché l'immagine è un .GIF? – Jacob

+0

@Jacob: Al momento non ho notato che era un Gif. La risposta è no gif non sono supportate. Funziona con l'URL modificato di Lennie. – AnthonyWJones

+0

Sì, funziona bene con le immagini JPG. Grazie –

Problemi correlati