J'ai une petite ellipse que je veux faire clignoter chaque fois qu'une propriété de dépendance est définie sur true. Parce que la propriété peut très rapidement passer de true à false en quelques millisecondes, je dois le faire avec une animation et non un simple datatrigger. Fondamentalement, je veux juste que la vraie valeur ping une animation sur l'ellipse.L'animation WPF ne déclenche qu'une seule fois
<Ellipse Height="10" Width="10" Stroke="#FFFFFFFF" Margin="5,3,0,0">
<Ellipse.Fill>
<SolidColorBrush />
</Ellipse.Fill>
<Ellipse.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsReceiving}" Value="True" >
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="Fill.Color">
<ColorAnimationUsingKeyFrames.KeyFrames>
<DiscreteColorKeyFrame KeyTime="0:0:0" Value="Red"/>
<DiscreteColorKeyFrame KeyTime="0:0:0.25" Value="Transparent"/>
</ColorAnimationUsingKeyFrames.KeyFrames>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
</Ellipse>
Cette animation semble fonctionner, mais il ne se déclenche la première fois que la valeur atteint vrai. Est-ce que je manque quelque chose?
MISE À JOUR: Merci pour l'entrée tout le monde. Il s'est avéré que c'était un problème de threading. À l'origine, j'avais un DP sur le contrôle qui était lié à un modèle de vue qui implémentait INotifyPropertyChanged. J'ai alors essayé d'enlever le DP sur le contrôle et de transformer ma propriété de modèle de vue en DP. Boom, c'est à ce moment que j'ai commencé à recevoir une erreur indiquant qu'un thread différent possédait l'objet. Je me suis rendu compte que j'avais besoin d'intégrer des observables en utilisant des extensions réactives comme je l'avais fait dans d'autres parties de l'application. Je suis revenu à la propriété traditionnelle du modèle de vue avec PropertyChanged() et je l'ai simplement lié à l'animation du contrôle. Tout fonctionne parfaitement maintenant.
Pourquoi voudriez-vous lier TwoWay il? – franssu