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中的隔离存储。但正确的方法是什么?
我认为您的代码应该更符合还需要查看配置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()