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>