Jestem nowy w WPF
i próby uzyskania niestandardowej kontroli użytkownika do animacji opartej na a DependencyProperty
. Mam to wiążące do używania a DataTrigger
. Jeśli DependencyProperty
jest równe Niepowodzenie, powinien animować kolor wypełnienia prostokąta(nazwany buttonColor) w ramach kontroli użytkownika. Z jakiegoś powodu jednak zawsze pozostaje w pętli na zawsze, nawet jeśli ustawiam opcję PowtarzanieBo na 6 (lub dowolną inną liczbę, w tym 1 w tym przypadku). Jeśli usuniemy atrybut RepeatBehavior, zagra ona tylko raz (zgodnie z oczekiwaniami). Byłbym wdzięczny, gdyby ktoś mógł obejrzeć mój fragment XAML poniżej i powiedzieć mi, co robię źle.
<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>
Odpowiedzi:
29 dla odpowiedzi nr 1Poprawna składnia do powtórzenia N
czasy to:
<Storyboard RepeatBehavior="Nx">
na przykład:
<Storyboard RepeatBehavior="6x">
0 dla odpowiedzi nr 2
Ustawienie wartości czasu trwania również ograniczy wartośćpowtórz zachowanie, ponieważ ma pierwszeństwo. Jeśli więc masz ustawione zachowanie powtarzania w znaczniku ColorAnimationUsingKeyFrames, ale w scenorysie ustawisz Duration = "0: 0: 4", animacja będzie się powtarzać tylko przez 4 sekundy.