Открыть изображение из изолированного хранилища?

#c# #image #windows-phone-7 #exception

#c# #изображение #windows-phone-7 #исключение

Вопрос:

Я хочу открыть изображение из изолированного хранилища?

Изображение было загружено ранее и правильно записано (я проверил это с помощью проводника изолированного хранилища).

Когда я пытаюсь открыть изображение с помощью BitmapImage (uriInIsolatedStorage) и установить его в качестве источника для элемента управления изображением Silverlight, он выходит из строя при прослушивании события сбоя изображения.

В исключении указано «AG_E_NETWORK_ERROR»

У кого-нибудь есть идея?

 Uri imageSource = new Uri("/cover.jpg",  UriKind.Relative);
BitmapImage bi = new BitmapImage(imageSource);
bi.ImageFailed  = new EventHandler<ExceptionRoutedEventArgs>(MainPage_ImageFailed);
bi.ImageOpened  =new EventHandler<RoutedEventArgs>(bi_ImageOpened);
imageCtrl.Source = bi;
  

Ответ №1:

К сожалению, вы не можете загрузить изображение непосредственно из изолированного хранилища через URI. Вам нужно открыть файл и выполнить еще несколько шагов, как описано здесь или (немного проще) здесь.

Это сводится к:

  • создание IsolatedStorageFileStream для вашего изображения
  • создание BitmapImage из данных файла
  • установка BitmapImage в качестве Image источника

Существует также isostore: схема URI, но она не работает.