Windows Phone 8中的StaticResource优先级

时间:2013-02-08 09:19:27

标签: design-patterns windows-phone-8 resourcedictionary

我有一个基本样式文件,包含所有基本颜色和基本字体设置。然后我有2个其他资源字典使用初始资源。

我的设置如下:

<Application.Resources>
    <ResourceDictionary>
        <localization:LocalizationLocator x:Key="LocalizedStrings" />
        <viewModels:ViewModelLocater x:Key="VmLocator" />
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="\Resources\Styles\BaseStyles.xaml" />
            <ResourceDictionary Source="\Resources\Styles\FormInputStyles.xaml" />
            <ResourceDictionary Source="\Resources\Styles\OtherControllsStyles.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

然后我从FormInputStyles.xml

获得以下异常

Cannot find a Resource with the Name/Key MyNewAccentColor [Line: 17 Position: 44]

有没有办法在添加合并字典之前加载BaseStyles.xaml?

(我知道我可以将它们全部放在同一个文件中,但我希望我的样式可以分解,以便我可以重复使用更好的代码)

1 个答案:

答案 0 :(得分:0)

我自己没试过,但是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作为最后一个元素。

请同时查看这个问题:Proper usage of Merged Resource Dictionaries in Silverlight 3