2013-06-10 4 views
7

Ich bin neu bei WPF und versuche, ein benutzerdefiniertes Benutzersteuerelement basierend auf einem DependencyProperty zu animieren. Ich habe es verbindlich, eine DataTrigger zu verwenden. Wenn die DependencyProperty gleich Fehler ist, sollte es die Füllfarbe eines Rechtecks ​​(namens buttonColor) innerhalb des Benutzersteuerelements animieren. Aus irgendeinem Grund läuft es immer für immer, auch wenn ich das Wiederholungsverhalten auf 6 (oder eine andere Zahl einschließlich 1) setze. Wenn ich das RepeatBehavior-Attribut entferne, spielt es die Animation nur einmal ab (wie erwartet). Ich würde mich freuen, wenn jemand meinen XAML-Auszug unten ansehen und mir sagen könnte, was ich falsch mache.WPF Storyboard-Animation wird für immer wiederholt, auch wenn RepeatBehavior = "6"

<DataTrigger Binding="{Binding Path=ButtonAction.Status}" Value="Failure"> 
    <DataTrigger.EnterActions> 
     <StopStoryboard BeginStoryboardName="Pulse"/> 

     <BeginStoryboard> 
      <Storyboard RepeatBehavior="1"> 
       <ColorAnimation Storyboard.TargetName="buttonColor" Storyboard.TargetProperty="Fill.Color" To="{StaticResource FailedColor}" AutoReverse="True" /> 
      </Storyboard> 
     </BeginStoryboard> 
    </DataTrigger.EnterActions> 
</DataTrigger> 

Antwort

28

Die korrekte Syntax N mal wiederholen:

<Storyboard RepeatBehavior="Nx"> 

zum Beispiel:

<Storyboard RepeatBehavior="6x"> 
+0

Ah danke das hat mein Problem behoben. Außer zu beachten, dass es ein Kleinbuchstabe 'x' – AXG1010

+0

@ AXG1010 korrigiert werden muss. Vielen Dank –

0

eine Dauer Wert Einstellung wird auch das Wiederholungsverhalten begrenzen, wie es Vorrang. Wenn Sie also für das ColorAnimationUsingKeyFrames-Tag ein Wiederholungsverhalten festgelegt haben, aber auf dem Storyboard eine Dauer = "0: 0: 4" festgelegt haben, wird die Animation nur für 4 Sekunden wiederholt.

Verwandte Themen