2010-03-16 13 views
12

Tôi nhận được mã bên dưới đang cố gắng tải hình ảnh từ web vào điều khiển Hình ảnh, khi tôi chạy nó, tôi gặp lỗi trên dòng nhất định không cho phép truy cập mạng :Cửa sổ Silverlight Phone 7: Tải hình ảnh từ 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 dành cho Windows Phone 7

+1

Sự cố được giải quyết. Silverlight không hỗ trợ GIF nên tôi đã viết một trang nhỏ chuyển đổi GIF thành 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 –

Trả lời

3

tôi thấy bạn đang truy xuất hình ảnh từ Dilbert.com nào trang web đó có một tập tin chính sách tên miền chéo?

+0

Windows Phone 7 Ứng dụng Silverlight không cần Chính sách tên miền chéo hạn chế này bị xóa, điều này không được biết khi câu hỏi và trả lời này được đăng, nghĩ rằng điều này có thể là hữu ích cho người khác - nó vẫn không hỗ trợ GIF. – RoguePlanetoid

0

Bạn có thể cung cấp cho chúng tôi dấu vết ngăn xếp ngoại lệ đầy đủ không? các lỗi có thể là giả lập điện thoại của bạn không có truy cập internet, hoặc nó có thể là hình ảnh trên máy chủ dilbert không cho phép yêu cầu vô danh mà không bắt nguồn từ trang web của họ ... để hướng dẫn về một giải pháp sẽ khác nhau :-)

12

Cố gắng tải xuống nội dung bằng WebClient sẽ yêu cầu phải có tệp chính sách truy cập ứng dụng khách trên máy chủ nguồn. Đối với hình ảnh bạn có thể tránh yêu cầu này bằng cách thực hiện nó như thế này: -

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, nhưng điều này vẫn hoạt động vì hình ảnh là một .GIF? – Jacob

+0

@Jacob: Vào thời điểm tôi không nhận thấy đó là một Gif. Câu trả lời là không có gifs nào không được hỗ trợ. Nó hoạt động với URL được sửa đổi của Lennie. – AnthonyWJones

+0

Có hoạt động tốt với hình ảnh JPG. Cảm ơn –