在鼠标悬停时更改按钮字体粗细和/或字体样式[关闭]
Posted
技术标签:
【中文标题】在鼠标悬停时更改按钮字体粗细和/或字体样式[关闭]【英文标题】:Change Button FontWeight and/or FontStyle on mouseover [closed] 【发布时间】:2021-12-20 21:40:55 【问题描述】:我想创建一个在鼠标悬停时动态更改其样式的按钮。我想更改 Foreground、Background、Border、FontWeight 和/或 FontStyle。我的 Window.Resources 中有以下 XAML...
<Window.Resources>
<Style TargetType="Button" x:Key="mouseOverStyle">
<Setter Property="Foreground" Value="#FF808080" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="TextBlock.FontWeight" Value="Normal" />
<Setter Property="TextBlock.FontStyle" Value="Normal" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button" >
<Border x:Name="Border" Background="TemplateBinding Background" BorderBrush="Transparent" BorderThickness="2" >
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers >
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="White" />
<Setter Property="Background" Value="#FF303030" />
<Setter Property="TextBlock.FontWeight" Value="Bold" />
<Setter Property="TextBlock.FontStyle" Value="Italic" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
在 MouseOver 上,Background、Foreground 和 Border 属性正确更改。但是,FontWeight 和 FontStyle 不会改变。
请告诉我我缺少什么,或者我需要改变什么。谢谢。
【问题讨论】:
【参考方案1】:鉴于您定义 Style 的方式,您需要明确告诉 Button 要使用哪种样式,如下所示:
<Button Style="StaticResource mouseOverStyle" />
您可以使用一些替代方案,它们会隐式告诉应用程序中的所有控件应用样式。让我们知道,答案可以扩展为包含此方法作为替代方法。
【讨论】:
以上是关于在鼠标悬停时更改按钮字体粗细和/或字体样式[关闭]的主要内容,如果未能解决你的问题,请参考以下文章