Невозможно загрузить внешние изображения в Silverlight - PullRequest
1 голос
/ 27 сентября 2010

Я пытаюсь загрузить изображение с URL-адреса в Silverlight и выполнил шаги на этом сайте , но безрезультатно.

Мой код выглядит следующим образом:

 imageUri = new Uri("http://php.scripts.psu.edu/dept/iit/hbg/philanthropy/Images/BlueSkyLarge.jpg", UriKind.Absolute);
 System.Windows.Media.Imaging.BitmapImage bi = new    System.Windows.Media.Imaging.BitmapImage();
 bi.UriSource = imageUri;
 m_Image.Source = bi;

 m_Image.ImageOpened += new EventHandler<RoutedEventArgs>(Image_Opened);

Функция обратного вызова (Image_Opened) также никогда не вызывается ..

Ответы [ 2 ]

3 голосов
/ 27 сентября 2010

Работает ли ваше приложение Silverlight с домена php.scripts.psu.edu? В противном случае Silverlight заблокирует доступ к нему, потому что он не разрешит запросы TCP, сделанные к любому домену, кроме того, с которого было загружено приложение.

См. здесь , чтобы узнать об ограничениях сети в Silverlight.

РЕДАКТИРОВАТЬ: комментатор прав. Это проблема кросс-зоны, которую вы видите сейчас. Вот ссылка с таблицей, показывающей, что может и не может сделать изображение (среди прочих).

0 голосов
/ 27 сентября 2010

Еще одна вещь, которую я бы исправил в вашем коде, это то, что вы прикрепляете обработчик в конце. Теоретически обработчик событий может не вызываться, если изображение загружено действительно быстро.

Я полагаю, что это не произойдет в большинстве случаев, но с кэшированием / повторным использованием объекта / и т. Д. кто знает. Я бы прикрепил обработчик сразу после создания объекта и был бы в безопасности.

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