Wpf 在相同的资源中使用样式字典和转换器

Wpf 在相同的资源中使用样式字典和转换器,wpf,xaml,Wpf,Xaml,我有一个小程序,它有一个基于布尔值的项目背景色转换器。我还有一个样式表,涵盖了许多基本格式。我有两个独立的工作,但当我尝试将它们结合在一起时,如: UserControl.Resources> <converter:RawMaterialHighlight x:Key="RawMat"></converter:RawMaterialHighlight> <ResourceDictionary Source="../

我有一个小程序,它有一个基于布尔值的项目背景色转换器。我还有一个样式表,涵盖了许多基本格式。我有两个独立的工作,但当我尝试将它们结合在一起时,如:

UserControl.Resources>
    <converter:RawMaterialHighlight x:Key="RawMat"></converter:RawMaterialHighlight>
    <ResourceDictionary Source="../Styles.xaml"></ResourceDictionary>
</UserControl.Resources>
UserControl.Resources>
我有两个错误:

每个字典条目必须有一个关联的键

添加到IDictionary的所有对象都必须具有键属性或与之相关联的其他类型的键。第13行位置10

当我将x:Key“Dictionary”添加到Dictionary行时,它表示无法解析Dictionary资源

<TextBlock Text="Material Type" Style="{StaticResource ResourceKey=TextBlockSectionHeader}"></TextBlock>

无法解析资源“TextBlockSectionHeader”

如果我添加Dict.TextBlockSectionHeader,我会得到相同的“无法解决”错误。我假设我在参考资料部分中的声明不正确,但到目前为止我还无法找到解决方案。

我在这里找到了答案:

答案是将样式嵌套在合并词典中,并将整个内容放入资源词典中:

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>                
            <ResourceDictionary Source="../Styles.xaml"></ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
        <converter:RawMaterialHighlight x:Key="RawMat"></converter:RawMaterialHighlight>
    </ResourceDictionary>        
</UserControl.Resources>