Wpf 通过XAML进行GotMouseCapture
这是我的Wpf 通过XAML进行GotMouseCapture,wpf,button,styles,Wpf,Button,Styles,这是我的按钮风格: <Style x:Key="NoBorderButton" TargetType="Button"> <Setter Property="Foreground" Value="White" /> <Setter Property="Background" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
按钮
风格:
<Style x:Key="NoBorderButton" TargetType="Button">
<Setter Property="Foreground" Value="White" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="FontSize" Value="15" />
<Style.Triggers>
<Trigger Property="Control.IsMouseOver" Value="true">
<Setter Property="Control.FontSize" Value="18" />
<Setter Property="Foreground" Value="LightSkyBlue" />
</Trigger>
<Trigger Property="Control.IsMouseOver" Value="false" >
<Setter Property="Foreground" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
您可以使用
EventTrigger
,下面是一个示例:
<EventTrigger RoutedEvent="GotMouseCapture">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Foreground"
To="DarkGray"
Duration="0:0:0"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
通过这种方式,颜色在失去焦点后保持在暗灰色,而不会变回白色。我的代码只是IsFocused
触发器的一个例子。只需为IsFocused
为false时创建另一个触发器
,并将其设置为前台
白色。我已经尝试过了,但通过这种方式,它禁用了在IsMouseOverXamlParseException:Key不能为null时更改前台的另一个触发器。\r\n参数名称:Key
<EventTrigger RoutedEvent="GotMouseCapture">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Foreground"
To="DarkGray"
Duration="0:0:0"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>