在 WPF 中为按钮设置鼠标悬停颜色

Set Mouse hover color for button in WPF

我在我的 WPF 应用程序中为按钮使用了以下样式。在这里如何设置按钮的鼠标悬停颜色?

 <Style TargetType="{x:Type Button}" x:Key="ButtonStyle2">
    <Setter Property="FontSize" Value="16" />
    <Setter Property="Background" Value="#FF45414D" />
    <Setter Property="Height" Value="35" />
    <Setter Property="Foreground" Value="White" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border CornerRadius="6,6,6,6" Background="#FF45414D" >
                    <ContentPresenter x:Name="contentPresenter" 
                                      ContentTemplate="{TemplateBinding ContentTemplate}" 
                                      Content="{TemplateBinding Content}" 
                                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                      Margin="{TemplateBinding Padding}" 
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                      />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

然后我更改了我的代码,将鼠标添加到 属性 上。 Click here 但是还是不行。

<Style TargetType="{x:Type Button}" x:Key="ButtonStyle2">
    <Setter Property="FontSize" Value="16" />
    <Setter Property="Background" Value="#FF45414D" />
    <Setter Property="Height" Value="35" />
    <Setter Property="Foreground" Value="White" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border CornerRadius="6,6,6,6" Background="#FF45414D" >
                    <ContentPresenter x:Name="contentPresenter" 
                                      ContentTemplate="{TemplateBinding ContentTemplate}" 
                                      Content="{TemplateBinding Content}" 
                                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                      Margin="{TemplateBinding Padding}" 
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                      />

                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Red"/>
        </Trigger>
    </Style.Triggers>
</Style>

给边框写个触发器怎么样?

<Style TargetType="{x:Type Button}">
<Setter Property="FontSize" Value="16" />
<Setter Property="Background" Value="Red" />
<Setter Property="Height" Value="35" />
<Setter Property="Foreground" Value="White" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border >
                    <ContentPresenter x:Name="contentPresenter" 
                      ContentTemplate="{TemplateBinding ContentTemplate}" 
                      Content="{TemplateBinding Content}" 
                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                      Margin="{TemplateBinding Padding}" 
                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                      />
                    <Border.Style>
                        <Style TargetType="Border">
                            <Setter Property="Background" Value="#FF45414D"/>
                            <Setter Property="CornerRadius" Value="6,6,6,6"/>
                            <Style.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter Property="Background" Value="Red"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </Border.Style>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

可以在border标签中写背景变化的触发器