Загрузка ResourceDictionary из IsolatedStorage - PullRequest
0 голосов
/ 07 января 2012

Я пытаюсь загрузить файл theme.xaml из моего веб-сервиса и добавить его в App.Current.Resources.MergedDictionaries. Проблема в том, что я не знаю, как создать ResourceDictionary из файла в IsolatedStorage, где я его кеширую.

Я бы хотел сделать что-то вроде этого:

        ResourceDictionary rd = new ResourceDictionary();
        rd.Source = new (Uri("isostore:/theme.xaml"));
        App.Current.Resources.MergedDictionaries.Clear();
        App.Current.Resources.MergedDictionaries.Add(rd);

Но я получаю "Unspecified Error" при вызове, который устанавливает источник. Я почти уверен, что не могу адресовать изолированное хранилище в Uri таким способом. Но как правильно это сделать?

Ответы [ 2 ]

0 голосов
/ 19 января 2012
using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var stream = new IsolatedStorageFileStream("theme.xaml", FileMode.Open, storage))
    {
        var xaml = XElement.Load(stream);
    }
}

Попробуй, сможешь ли ты заставить это работать.Я использовал этот подход для загрузки xmlfiles.Думаю, вы можете использовать Application.GetResourceStream вместо XElement.Load()

0 голосов
/ 07 января 2012

Я считаю, что ваш код должен быть чем-то еще также нужно посмотреть, как выглядит config xml

 ResourceDictionary rd = new ResourceDictionary();
 rd.Source = new Uri("/isostore;/theme.xaml", UriKind.RelativeOrAbsolute);
 App.Current.Resources.MergedDictionaries.Clear();
 App.Current.Resources.MergedDictionaries.Add(rd);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...