Loading a ResourceDictionary from IsolatedStorage

本文关键字:IsolatedStorage from ResourceDictionary Loading | 更新日期: 2023-09-27 18:19:44

我正试图从我的Web服务下载一个文件'theme.xaml',并将其添加到App.Current.Resources.MergedDictionaries。我遇到的问题是我不知道如何从IsolatedStorage中的文件创建ResourceDictionary,我正在缓存它。

我想做这样的事情:

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

但是我在设置源的调用中得到了一个"未指定的错误"。我很确定我不能用这种方式解决Uri中的隔离存储。但正确的方法是什么?

Loading a ResourceDictionary from IsolatedStorage

我认为您的代码应该更符合还需要查看配置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);
using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var stream = new IsolatedStorageFileStream("theme.xaml", FileMode.Open, storage))
    {
        var xaml = XElement.Load(stream);
    }
}

如果你能让它发挥作用,试试看。我已经使用这种方法来加载xml文件。认为您可以使用Application.GetResourceStream而不是XElement.Load()