在 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标签中写背景变化的触发器
我在我的 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标签中写背景变化的触发器