Silverlight无法在同一个字典中找到资源

时间:2010-09-23 02:21:24

标签: silverlight templates xaml

我在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可以找到样式而不是模板?它们位于同一个文件中......

1 个答案:

答案 0 :(得分:3)

在Xaml解析期间解析静态资源引用。因此,您无法使用前向参考。

将控件模板按文档顺序放在样式上方,以便解析器首先找到“GridSplitterTemplate”。然后,当“GridSplitterStyle”引用它时,解析器将能够找到它。