C# 如果单击过快,WPF情节提要动画将冻结

C# 如果单击过快,WPF情节提要动画将冻结,c#,wpf,xaml,animation,C#,Wpf,Xaml,Animation,我目前对下面的简单XAML代码有一个恼人的问题。动画确实正确发射,并且如果我在动画完成后单击按钮,动画将始终正确发射。如果我快速单击几次,动画将冻结,动画将不再运行 非常感谢你的帮助 <!-- Admin Login Button /--> <ToggleButton Name="LoginButton" IsChecked="{Binding ElementName=LoginPopup, Path=IsOpen, Mode=TwoWay}" HorizontalAl

我目前对下面的简单XAML代码有一个恼人的问题。动画确实正确发射,并且如果我在动画完成后单击按钮,动画将始终正确发射。如果我快速单击几次,动画将冻结,动画将不再运行

非常感谢你的帮助

<!-- Admin Login Button /-->
    <ToggleButton Name="LoginButton" IsChecked="{Binding ElementName=LoginPopup, Path=IsOpen, Mode=TwoWay}" HorizontalAlignment="Right" Margin="0,35,32.334,0" VerticalAlignment="Top" Width="97" Height="77" BorderThickness="0" Grid.Column="1" Grid.ColumnSpan="2">
        <ToggleButton.Background>
            <ImageBrush ImageSource="/Resources/Images;component/Resources/titleAboutIcon.png"/>
        </ToggleButton.Background>
        <!--  <Frame x:Name="AdminFrame" Height="77" Width="97"/> /-->
        <ToggleButton.RenderTransform>
            <ScaleTransform x:Name="Buttonscale" ScaleX="1" ScaleY="1" CenterX="0" CenterY="{Binding ElementName=LoginButton, Path=ActualHeight}" />
        </ToggleButton.RenderTransform>
        <ToggleButton.Triggers>
            <EventTrigger RoutedEvent="Button.Click">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="Buttonscale" Storyboard.TargetProperty="(ScaleTransform.ScaleX)" To="1.25" Duration="0:0:0.25" AutoReverse="True"/>
                        <DoubleAnimation Storyboard.TargetName="Buttonscale" Storyboard.TargetProperty="(ScaleTransform.ScaleY)" To="1.25" Duration="0:0:0.25" AutoReverse="True"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </ToggleButton.Triggers>
    </ToggleButton>
    <!-- Admin Login Button /-->

您可以将FillBehavior=“Stop”添加到情节提要中,这样它将停止并重置动画属性值,而不是冻结它们(HoldEnd是FillBehavior的默认值,因此不会将值更改回默认值)

从MSDN:

如果希望动画在达到其活动周期结束后保持其值,请将动画FillBehavior属性设置为HoldEnd。如果动画的FillBehavior设置为HoldEnd,则该动画已达到其活动周期的末尾,称其处于填充周期。如果不希望动画在其活动周期结束后保持其值,请设置其 要停止的FillBehavior属性


非常感谢!它仍然会冻结一段时间,但至少会恢复到原始状态。