我目前在使用下面的简单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 /-->
答案 0 :(得分:2)
您可以添加FillBehavior =&#34;停止&#34;到你的故事板,所以它将停止并重置动画属性值而不是冻结它们(HoldEnd是FillBehavior的默认值,因此它不会将值更改回默认值)。
来自MSDN:
当您希望动画在其活动期间结束后保持其值时,将动画FillBehavior属性设置为HoldEnd。已经达到其活动期间结束且具有HoldEnd的FillBehavior设置的动画被称为处于填充期间。当您想要动画在其活动期间结束后保持其值时,请设置它 FillBehavior属性为Stop。