我需要从net下载RecourceDictionary并将其连接到项目。
因此,在App.xaml中,我有一些类似当前ResourceDictionary的存根:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ResourceDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>然后,我将新的ResourceDictionary (ResourceDictionary2.xaml)下载并存储到IsolatedStorage。然后我需要用新的替换当前的。
实际上,如果这个文件在项目文件夹中,我会这样做:
var newDict = new ResourceDictionary {
Source = new Uri("/WP7ResourceDictionaryTest;component/ResourceDictionary2.xaml", UriKind.Relative)
};
ResourceDictionary appResources = App.Current.Resources;
appResources.MergedDictionaries.RemoveAt(0);
appResources.MergedDictionaries.Add(newDict);这段代码可以工作。
所以问题是:如何用IsoStorage中的文件替换当前的RecourceDictionary?我尝试这样设置Uri:
newDict.Source = new Uri("isostore:/ResourceDictionary2.xaml");但它不起作用。
发布于 2012-02-08 03:55:13
首先,您应该使用我的通用独立存储实用程序found here
然后执行以下操作:
ResourceDictionary isoResourceDictionary = (ResourceDictionary)IsolatedStorage_Utility.Load<ResourceDictionary>(filename);
appResources.MergedDictionaries.RemoveAt(0);
appResources.MergedDictionaries.Add(isoResourceDictionary);下一个问题是你让在InitializComponents之前做这件事,因为Silverligh/WP7 只允许支持StaticResources。解决这个问题的唯一方法是刷新当前页面。
https://stackoverflow.com/questions/9177146
复制相似问题