"IsMouseOver" 为 True 时更改 WPF 按钮前景
Change WPF Button Foreground when the "IsMouseOver" is True
我看到了一些类似的问题,但没有一个解决方案似乎有效。
我更愿意通过 XAML 获得解决方案,但也不介意通过代码 (VB.net) 获得解决方案。
我目前有这段代码,不确定其中有多少是正确的:
<Style TargetType="{x:Type Button}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Foreground" Value="DarkSlateGray"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="White">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="DodgerBlue"/>
</Trigger>
</Style.Triggers>
</Style>
提前致谢。
大体上是正确的。但请注意,模板中的 ContentPresenter
没有定义 Content
属性。当然,如果你需要更复杂的触发器,你也可以将IsEnabled
组合成一个MultiTrigger
.
我看到了一些类似的问题,但没有一个解决方案似乎有效。
我更愿意通过 XAML 获得解决方案,但也不介意通过代码 (VB.net) 获得解决方案。
我目前有这段代码,不确定其中有多少是正确的:
<Style TargetType="{x:Type Button}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Foreground" Value="DarkSlateGray"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="White">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="DodgerBlue"/>
</Trigger>
</Style.Triggers>
</Style>
提前致谢。
大体上是正确的。但请注意,模板中的 ContentPresenter
没有定义 Content
属性。当然,如果你需要更复杂的触发器,你也可以将IsEnabled
组合成一个MultiTrigger
.