我有一个基本样式文件,其中包含所有基本颜色和基本字体设置。然后我有另外两个资源字典,它们使用该初始资源。
我有它的设置如下:
<Application.Resources>
<ResourceDictionary>
<localization:LocalizationLocator x:Key="LocalizedStrings" />
<viewModels:ViewModelLocater x:Key="VmLocator" />
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ResourcesStylesBaseStyles.xaml" />
<ResourceDictionary Source="ResourcesStylesFormInputStyles.xaml" />
<ResourceDictionary Source="ResourcesStylesOtherControllsStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
然后我从FormInputStyles.xml 中得到以下异常
Cannot find a Resource with the Name/Key MyNewAccentColor [Line: 17 Position: 44]
在添加合并词典之前,是否有加载BaseStyles.xaml的方法?
(我知道我可以把它们都放在同一个文件中,但我希望我的样式被分解,这样我就可以更好地重用代码)
我自己还没有尝试过,但MSDN页面上写着:
If multiple merged dictionaries exist, these dictionaries are checked in the inverse of the order in which they are declared in the MergedDictionaries property.
即,尝试将BaseStyles.xaml作为最后一个元素。
还请检查这个SO问题:Silverlight 3 中合并资源词典的正确使用