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>

最好是将样式放在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>

最新更新