Xaml继承了StaticResource样式

时间:2013-08-13 08:20:58

标签: xaml

我正在为我的按钮使用样式资源。 只是想知道什么是更好的做法。

<StackPanel Grid.Row="1">
    <Button Content="Create Event" Click="CreateEvent_Click" Style="{StaticResource NavigationButton}" />
    <Button Content="Search Event" Click="SearchEvent_Click" Style="{StaticResource NavigationButton}" />
    <Button Content="My Events" Click="MyEvents_Click" Style="{StaticResource NavigationButton}" />
</StackPanel>

所以,如果我有很多按钮,我将需要写总是Style =“{StaticResource NavigationButton}”

或者选择这个:

<StackPanel Grid.Row="1">
    <StackPanel.Resources>
        <Style TargetType="Button" BasedOn="{StaticResource NavigationButton}" />
    </StackPanel.Resources>
    <Button Content="Create Event" Click="CreateEvent_Click" />
    <Button Content="Search Event" Click="SearchEvent_Click" />
    <Button Content="My Events" Click="MyEvents_Click" />
</StackPanel>

1 个答案:

答案 0 :(得分:0)

最好将样式放在App Resources下的App.xaml中。这是一个更好的解决方案然后在页面上,因为资源将只创建一次(而不是在重用时在多个页面上)。

此外,您可以指定目标类型,如下所示。这样,您就不必像在示例中那样引用某种样式。你只需在这里定义你的风格:

    <Application.Resources>
        <Style TargetType="{x:Type Button}">
            <Setter Property="Background" Value="Black" />
            <Setter Property="Foreground" Value="White" />
            <Setter Property="Width" Value="80" />
            <Setter Property="Margin" Value="10" />
        </Style>
    </Application.Resources>