如何在悬停在按钮上时摆脱默认的蓝色?

时间:2015-08-27 22:00:07

标签: c# wpf xaml triggers

我已经宣布了一种风格如下。

<Style x:Key="RightButtonStyle"
       TargetType="Button">
  <Style.Triggers>
    <Trigger Property="IsMouseOver"
             Value="True">
      <Setter Property="Background"
              Value="BlueViolet"></Setter>
    </Trigger>
    <Trigger Property="IsMouseOver"
             Value="False">
      <Setter Property="Background"
              Value="Yellow" />
    </Trigger>
  </Style.Triggers>
</Style>

使用该样式的我的按钮仅遵循黄色部分。出于某种原因,它仍然变得偏蓝(默认悬停颜色)而不是悬停时的蓝紫色。我错过了什么?我不知道其他的制定者或风格。

1 个答案:

答案 0 :(得分:2)

它仍在使用默认按钮模板。你需要覆盖它。

        <Style Key="RightButtonStyle" TargetType="Button">
            <Setter Property="OverridesDefaultStyle" Value="True"/>
            <Setter Property="Margin" Value="5"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Grid Background="{TemplateBinding Background}">
                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="BlueViolet"></Setter>
                </Trigger>
                <Trigger Property="IsMouseOver" Value="False">
                    <Setter Property="Background" Value="Yellow" />
                </Trigger>
            </Style.Triggers>
        </Style>