2015-02-06 82 views
1

我目前有一個惱人的問題,簡單的XAML代碼如下。動畫會正確觸發,並且如果在動畫完成後單擊該按鈕,它將始終正確觸發。如果我快點幾下,動畫就會凍結,動畫將永不再運行。WPF故事動畫凍結如果點擊太快

非常感謝您的幫助!

<!-- 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 /--> 

回答

2

您可以添加FillBehavior =「停止」你的故事板,因此將停止,復位,而不是凍結他們的動畫屬性的值(HoldEnd是FillBehavior的默認值,所以它不會更改值回自己默認)。

從MSDN:

當你想達到其活躍期結束後的動畫來保持其值設置爲一個動畫FillBehavior屬性HoldEnd。據說已經達到其活動期的結束的具有HoldEnd的FillBehavior設置的動畫處於其填充期。如果您不希望動畫在其活動期結束後保持其值,請將其 FillBehavior屬性設置爲「停止」。

https://msdn.microsoft.com/en-us/library/system.windows.media.animation.timeline.fillbehavior(v=vs.110).aspx

+0

非常感謝!它仍然會暫時凍結,但至少它會恢復到原來的狀態。 – Giallo 2015-02-06 10:47:57