在我的MainWindow.xaml中,我有以下对ResourceDictionary的引用:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
在MainSkin.xaml中,我定义了一个datatemplate:
<DataTemplate x:Key="TagTemplate">
...
</DataTemplate>
在我的应用程序中,我尝试使用此数据模板:
<ContentControl DataContext="{Binding Tag}" ContentTemplate="{StaticResource TagTemplate}"/>
代码编译成功,但是当我尝试加载包含此StaticResource的Page或UserControl时,我得到一个异常,说无法找到TagTemplate。
我做错了什么?
答案 0 :(得分:3)
为了访问XAML文件中定义的资源的内容,您需要在每个页面中“包含”该XAML文件以及使用它的控件。因此,每个XAML文件都需要具有MainWindow.xaml中的MergedDictionaries
条目。
或者,您可以将这些合并字典添加到App.xaml
,并隐式包含这些资源:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
答案 1 :(得分:0)
您是否在声明它的同一窗口中使用该StaticResource?否则我认为你无法访问它。