按钮背景属性不起作用

时间:2014-09-15 16:38:12

标签: wpf xaml button background

我的代码中有一个带样式的按钮。 Style位于.xaml文件的资源中:

<Style x:Key="RoundCorner" TargetType="{x:Type Button}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Border CornerRadius="8" BorderBrush="#006AB6" BorderThickness="1" Name="border" >
                                <Grid x:Name="grid" >
                                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" ></ContentPresenter>
                                </Grid>
                            </Border>
                            <ControlTemplate.Triggers></ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

这里是按钮的代码:

<Button Name="btnZ" Background="Red" Content="{Binding Z}" Grid.Column="2" Style="{DynamicResource RoundCorner}" Visibility="{Binding Path=IsButtonVisible, Converter={StaticResource boolToVisibilityConverter}}"/>

按钮的背景属性,我将属性设置为红色 - 不起作用。为什么会这样?

1 个答案:

答案 0 :(得分:1)

您必须使用Background将Button的Background映射到内部ControlTemplate的Border(其根视觉为TemplateBinding)(为方便起见) :

<ControlTemplate TargetType="{x:Type Button}">
  <Border CornerRadius="8" BorderBrush="#006AB6" BorderThickness="1" 
          Name="border"
          Background="{TemplateBinding Background}"
   />
   <!-- ... -->
</ControlTemplate>