Вам не нужно извлекать его обратно в источник BitMap напрямую, но вы можете получить его через класс IsolatedStorageFileStream
.
Вот моя версия вашего класса, метод которого принимает поток (ваш код, очевидно, делает больше, чем мой, но этого должно быть достаточно для наших целей).
public class MyPhotoClass
{
public BitmapSource ConvertToBitmapSource(Stream stream)
{
BitmapImage img = new BitmapImage();
img.SetSource(stream);
return img;
}
}
Затем вызов этого класса с данными из файла, который мы извлекли из изолированного хранилища:
private void LoadFromIsostore_Click(object sender, RoutedEventArgs e)
{
using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream fs = file.OpenFile("saved.image", FileMode.Open))
{
MyPhotoClass c = new MyPhotoClass();
BitmapSource picture = c.ConvertToBitmapSource(fs);
MyPicture.Source = picture;
}
}
}
Обратите внимание, что мы используем объект IsolatedStorageFileStream
, возвращенный из метода OpenFile
напрямую. Это поток, который ожидает ConvertToBitmapSource.
Дайте мне знать, если это не то, что вы ищете, или я неправильно понял ваш вопрос ...