使用另一个合并字典的合并字典中定义的样式

下面你可以看到我是如何通过合并字典来尝试隔离样式的(我为了清洁而跳过命名空间)

App.xaml

        

Colors.xaml

  

HeaderStyle.xaml

     

在编译期间,我收到以下错误:

找不到名称/键DarkTextForeground的资源

为了使它工作,我们必须在HeaderStyle.xaml中合并Colors.xaml ,如下所示:

        

任何人都可以向我解释,为什么我必须在HeaderStyle.xaml中引用Colors.xaml
我不能只引用不同合并字典中定义的样式吗?
我假设在HeaderStyle.xaml之前加载Colors.xaml,因此它对于稍后定义的字典应该是可见的。

这是对我在msdn论坛上的Erick Fleck 提出的问题的回应:

在您的第一个示例中,每个文件都是独立解析的,然后添加到合并的字典中,这样他们就不会知道彼此的任何信息……类似地,合并字典中的XAML不能引用“父”ResourceDictionary中的名称。 换句话说,您应该将MergedDictionaries视为单向引用。

这是它的工作方式我猜…