wpf 按钮背景悬停颜色

标签 wpf xaml button styles hover

我正在尝试在悬停时更改 xaml 中按钮样式的背景颜色
这是我目前的方法,但它不起作用。正在使用默认悬停颜色

<Style x:Key="AtStyle" TargetType="Button">
        <Setter Property="Background">
            <Setter.Value>
                <SolidColorBrush Color="{StaticResource AtBlue}" />
            </Setter.Value>
        </Setter>
        <Setter Property="Foreground" Value="White" />
        <Setter Property="Padding" Value="12,6" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="FontSize" Value="18.667" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background">
                    <Setter.Value>
                        <SolidColorBrush Color="Red" />
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>

我已经看到其他解决方案说您需要覆盖 Control 模板才能实现这一点,但这些解决方案还要求您定义边框和内容,这似乎是不必要的。在 Xaml 中定义悬停状态的最小方法是什么?

最佳答案

我根据您的要求创建了基于简单样式的按钮,

XAML

<Style  TargetType="Button">
  <Setter Property="Background"
          Value="Blue" />
  <Setter Property="HorizontalAlignment"
          Value="Center" />
  <Setter Property="VerticalAlignment"
          Value="Center" />
  <Setter Property="Foreground"
          Value="White" />
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type Button}">
        <Border x:Name="bg"
                Background="{TemplateBinding Background}"
                BorderThickness="2"
                BorderBrush="White">
          <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                            VerticalAlignment="{TemplateBinding VerticalAlignment}" />
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsMouseOver"
                   Value="True">
            <Setter Property="Background"
                    Value="Red"
                    TargetName="bg" />
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

关于wpf 按钮背景悬停颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376447/

相关文章:

wpf - 动画提示应该在我的 View 模型中吗? MVVM

c# - 空字符串上的数据触发

button - 如何在SwiftUI中更改按钮的背景颜色?

javascript - type=button 和 type=submit 按回车键

wpf - RestSharp - 在 WPF/Silverlight 中下载/使用图像

c# - WPF ContextMenu itemtemplate,menuitem inside menuitem

wpf - XAML:如何将 GroupBox Header 的一部分设为粗体?

C# WPF 获取错误 - System.InvalidOperationException :

wpf - 将设计时资源排除在构建之外的最佳方法是什么?

button - 哪里可以获得谷歌品牌断开连接按钮?