设计模式-WindowsPhone8中的StaticResource优先级



我有一个基本样式文件,其中包含所有基本颜色和基本字体设置。然后我有另外两个资源字典,它们使用该初始资源。

我有它的设置如下:

<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 中合并资源词典的正确使用

最新更新