关于WPF资源/样式的问题&范围

时间:2010-09-03 01:27:20

标签: wpf

我刚刚开始使用WPF,并想知道为什么会这样做

<Window ...>
    <Window.Resources>
        <Style x:Name="buttonStyle">
            <Style.Setters>
                <Setter Property="Button.FontWeight" Value="Bold" />
                <Setter Property="Button.Foreground" Value="Aqua" />
            </Style.Setters>
        </Style>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <Button ... Style="{StaticResource buttonStyle}" />
        </StackPanel>
    </Grid>
</Window>

但这失败了,

<Window ...>
    <Window.Resources>
        <Style x:Name="buttonStyle">
            <Style.Setters>
                <Setter Property="Button.FontWeight" Value="Bold" />
                <Setter Property="Button.Foreground" Value="Aqua" />
            </Style.Setters>
        </Style>
    </Window.Resources>
    <Grid>
        <StackPanel ...>
            <StackPanel.Resources>
                <Style x:Name="buttonStyle2">
                    <Setter Property="Button.Foreground" Value="Red" />
                </Style>
            </StackPanel.Resources>
            <Button ... Style="{StaticResource buttonStyle}" />
            <Button ... Style="{StaticResource buttonStyle2}" />
        </StackPanel>
    </Grid>
</Window>

错误是

  • 无法解析资源“buttonStyle2”
  • 无法解析资源“buttonStyle”

buttonStyle在第一个代码中解析确定(没有第二个按钮)

1 个答案:

答案 0 :(得分:0)

arr ...我的不好,我应该使用x:Key而不是x:Name