Wpf 在鼠标上方更改样式
我有两种按钮样式。第一个用于正常状态,第二个用于鼠标悬停状态。当鼠标进入时,如何更改按钮样式?在Blend中,我试图创建一个故事板并更改样式,但什么也没发生。您可以将Wpf 在鼠标上方更改样式,wpf,xaml,styles,blend,Wpf,Xaml,Styles,Blend,我有两种按钮样式。第一个用于正常状态,第二个用于鼠标悬停状态。当鼠标进入时,如何更改按钮样式?在Blend中,我试图创建一个故事板并更改样式,但什么也没发生。您可以将样式属性绑定到IsMouseOver并使用通用的“真值”/“假值”转换器 您可以这样指定转换器 <Window.Resources> <Style TargetType="Button" x:Key="normalStyle"> <Setter Property="Foregro
样式
属性绑定到IsMouseOver
并使用通用的“真值”/“假值”转换器
您可以这样指定转换器
<Window.Resources>
<Style TargetType="Button" x:Key="normalStyle">
<Setter Property="Foreground" Value="Green"/>
</Style>
<Style TargetType="Button" x:Key="mouseOverStyle">
<Setter Property="Foreground" Value="Red"/>
</Style>
<converters:BooleanObjectConverter FalseValue="{StaticResource normalStyle}"
TrueValue="{StaticResource mouseOverStyle}"
x:Key="styleConverter"/>
</Window.Resources>
布尔对象转换器
<Button Style="{Binding RelativeSource={RelativeSource Self},
Path=IsMouseOver,
Converter={StaticResource styleConverter}}"
... />
public class BooleanObjectConverter : IValueConverter
{
public object TrueValue { get; set; }
public object FalseValue { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((bool)value == true)
{
return TrueValue;
}
return FalseValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}