0

我有一个基本样式文件,其中包含所有基本颜色和基本字体设置。然后我有 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?

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

4

1 回答 1

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 作为最后一个元素。

并且还请检查这个 SO 问题:正确使用 Silverlight 3 中的合并资源字典

于 2013-02-08T12:46:12.593 回答