Silverlight Windows Phone 7: загрузка изображений с URL - PullRequest
12 голосов
/ 16 марта 2010

Я получил приведенный ниже код, который пытается загрузить изображение из Интернета в элемент управления Image, когда я запускаю его, я получаю сообщение об ошибке в данной строке о том, что сетевой доступ запрещен:

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

Ответы [ 4 ]

12 голосов
/ 16 марта 2010

При попытке загрузить контент с помощью 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);
}
3 голосов
/ 16 марта 2010

Я вижу, вы извлекаете изображение из Dilbert.com, есть ли у этого сайта файл междоменной политики?

1 голос
/ 16 марта 2010

Silverlight не поддерживает GIF только JPG, поэтому я написал:

www.lenniedevilliers.net / displaygif.aspx? Ссылка = http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/80000/5000/100/85108/85108.strip.print.gif

Страница displaygif.aspx преобразует GIF в JPG.

0 голосов
/ 16 марта 2010

Можете ли вы дать нам полную трассировку стека исключений? ошибка может заключаться в том, что ваш эмулятор телефона не имеет доступа к Интернету, или это может быть изображение на сервере DILBERT, которое не допускает анонимных запросов, которые не исходят с их сайта ... поэтому руководство по решению будет другим :-)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...