Я не совсем понимаю, почему когда устанавливаю StreamSource для BitmapImage, он всегда будет null.
Сделал небольшой конвертер Uri изображений с локальным кэшированием, с использованием IsolatedStorageFile. При запросе изображения идет перенаправление запроса к локалбному хранилищу, и при отсутствии кэша, грузится из сети, при этом после загрузки сразу же кэшируется.
Но как только я пытаюсь установить StreamSource для BitmapImage, он просто при возврате BitmapImage будет всегда null, да и само изображение не загружено.
string fullPath = BasePath + "\\" + filePath + ".cache";
if (!Iso.FileExists(fullPath))
{
return null;
}
BitmapImage result = new BitmapImage
{
StreamSource = Iso.OpenFile(fullPath, FileMode.Open, FileAccess.Read)
};
return result;
Возможно ли это исправить?
Обратите внимание, класс BitmapImage реализует интерфейс ISupportInitialize. Это значит, что он поддерживает "пакетную инициализацию", т. е. вы должны вызвать у объекта BeginInit, затем установить нужные свойства (UriSource или StreamSource и другие параметры) и вызвать EndInit. Все установки свойств до BeginInit и после EndInit игнорируются. Другой способ инициализации — вызов параметризированного конструктора, но в наличии есть только конструктор с Uri.
Продвижение своими сайтами как стратегия роста и независимости