我在Silverlight 4.0应用程序的ResourceDictionary中定义了以下样式
<Style x:Key="GridSplitterStyle" TargetType="sdk:GridSplitter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Template" Value="{StaticResource GridSplitterTemplate}" />
</Style>
<ControlTemplate x:Key="GridSplitterTemplate" TargetType="sdk:GridSplitter">
<StackPanel Background="Transparent" Height="32">
<!-- ... -->
</StackPanel>
</ControlTemplate>
当我在GridSplitter上应用样式时,会找到并正确应用样式。但是,将Template属性链接到同一个字典文件中定义的ControlTemplate时,会出现以下错误:
找不到名称/键GridSplitterTemplate的资源
为什么Silverlight可以找到样式而不是模板?它们位于同一个文件中......
答案 0 :(得分:3)
在Xaml解析期间解析静态资源引用。因此,您无法使用前向参考。
将控件模板按文档顺序放在样式上方,以便解析器首先找到“GridSplitterTemplate”。然后,当“GridSplitterStyle”引用它时,解析器将能够找到它。