资源中的按钮样式不适用于按钮

时间:2014-10-17 05:58:22

标签: wpf

有人可以向我解释为什么这不起作用? ToolBar中的按钮未获得Black BorderBrush属性设置。我已经尝试了TargetType =“Button”和TargetType =“{x:Type Button}”,但都没有工作。我为一系列标签做了几乎完全相同的事情,它工作得很好。我对WPF很新。有什么我不理解风格优先的地方吗?谢谢!

...Window Definition...

<Grid>
    <Grid.Resources>
        <Style TargetType="{x:Type Button}">
            <Setter Property="BorderBrush" Value="Black" />
        </Style>
    </Grid.Resources>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <ToolBar Grid.Column="0" Grid.Row="0" Margin="0">
        <Button>
            <StackPanel Orientation="Horizontal" Height="Auto">
                <Rectangle Width="16" Height="16" Fill="LightBlue" VerticalAlignment="Center"></Rectangle>
                <Label Padding="0" VerticalAlignment="Center" HorizontalAlignment="Left">Redraw</Label>
            </StackPanel>
        </Button>
        ... More Buttons ...
    </ToolBar>
</Grid>

... End Window Definition ...

1 个答案:

答案 0 :(得分:2)

你去吧

<Style x:Key="{x:Static ToolBar.ButtonStyleKey}"
       TargetType="{x:Type Button}">
    <Setter Property="BorderBrush"
            Value="Black" />
</Style>

来自How to: Style Controls on a ToolBar

  

工具栏定义 ResourceKey 对象,以在工具栏中指定控件样式 。要在工具栏中设置控件样式,请将样式的 x:key 属性设置为ToolBar中定义的ResourceKey。

ToolBar定义了以下ResourceKey对象:

  • ButtonStyleKey
  • CheckBoxStyleKey
  • ComboBoxStyleKey
  • MenuStyleKey
  • RadioButtonStyleKey
  • SeparatorStyleKey
  • TextBoxStyleKey
  • ToggleButtonStyleKey