如何在Page.Resources中包含两个资源?

时间:2014-10-21 06:11:31

标签: c# wpf xaml

在WPF中,这曾经很好用:

<Page.Resources>
    <ResourceDictionary Source="resources/Styles.xaml" />
</Page.Resources>

但添加转换器(见下文)会导致第二个资源(Style.xaml)出错:Each dictionary entry must have an associated key

<Page.Resources>
    <local:MySizeConverter x:Key="sizeConverter"/>
    <ResourceDictionary Source="resources/Styles.xaml" />
</Page.Resources>

但是,在第二行添加密钥(例如<ResourceDictionary x:Key="myStyleDict" Source="resources/Styles.xaml" />会导致后面的代码出现以下错误

The name 'aTextBlockUsedToWork' does not exist in the current context

在添加密钥之前,可以在代码中成功访问aTextBlockUsedToWork。请注意,如果我注释掉样式资源,转换器工作正常。我怎样才能让这两种资源都有效?

1 个答案:

答案 0 :(得分:9)

您需要使用MergedDictionaries导入另一个字典文件,如下所示:

<Page.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="resources/Styles.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <local:MySizeConverter x:Key="sizeConverter"/>
    </ResourceDictionary>
</Page.Resources>