代码之家  ›  专栏  ›  技术社区  ›  Xavier Poinas

Silverlight在同一词典中找不到资源

  •  2
  • Xavier Poinas  · 技术社区  · 14 年前

    我在Silverlight4.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>
    

    当我在网格拆分器上应用样式时,会找到并正确应用该样式。但是,当将模板属性链接到同一字典文件中定义的ControlTemplate时,会出现以下错误:

    找不到名为/key gridsplitterTemplate的资源

    为什么Silverlight可以找到样式而不是模板?它们位于同一文件中…

    1 回复  |  直到 14 年前
        1
  •  3
  •   AnthonyWJones    14 年前

    静态资源引用是在XAML解析期间解析的。因此,您不能使用前向引用。

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