我在我的App.xaml下面的一组代码:从不同的ResourceDictionary在Silverlight
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Client.Common;component/Theme/Brushes.xaml"/>
<ResourceDictionary Source="/Client.Common;component/Theme/Fonts.xaml"/>
<ResourceDictionary Source="/Client.Common;component/Theme/CoreStyles.xaml"/>
<ResourceDictionary Source="/Client.Common;component/Theme/SdkStyles.xaml"/>
<ResourceDictionary Source="/Client.Common;component/Theme/MyAppName.xaml"/>
<ResourceDictionary Source="/Client.Common;component/Controls/NavigationPanel.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
的NavigationPanel.xaml包含了风格,看起来像这样:
<Style x:Key="NavigationPanelListBox" TargetType="ListBox">
<Setter Property="Background" Value="{StaticResource DarkBackground}" />
<Lots of XAML>
</Style>
的{StaticResource的DarkBackground}在Brushes.xaml文件(即限定第一R esource字典)。它被定义为
<SolidColorBrush x:Key="DarkBackground" Color="#FF707176" />
在资源字典中。
在运行时,我得到以下错误:
Cannot find a Resource with the Name/Key DarkBackground [Line: 16 Position: 44]
行号和位置引用NavigationPanel.xaml资源字典在App.xaml中。
我可以引用其他控件的笔刷,而不是包含的资源字典。
为什么我不能引用或为什么它不解析对合并资源字典的层次更高的资源的引用?我在这里错过了什么?
这是行不通的,我明白为什么现在可以解决,但为什么它不在更高级别的字典中解决?我的答案是正确的,但如果你知道这是为什么,我会很乐意解释。 – 2012-02-29 20:20:39
在另一个线程发现了这一点。留在这里为后人。 https://social.msdn.microsoft.com/forums/windowsapps/en-US/2be9a5f6-5313-448d-a9d9-296bac42215e/using-style-defined-in-merged-dictionary-from-another-merged-dictionary?论坛= wpdevelop感谢卡米尔Nieweglowski为此。 – Snouto 2015-05-15 10:51:28