Bonjour tout le monde,
J'essaie de binder le SpeedRatio d'une animation sur une propriété de mon ViewModel mais j'ai beau changer la valeur de la propriété, la vitesse de l'animation reste la même. J'ai également essayé de binder la Duration de l'animation mais ça ne fonctionne pas non plus.
J'ai fait le petit xaml de test ci-dessous, dans lequel je binde le SpeedRatio sur la valeur d'un Slider, mais ça non plus ça ne fonctionne pas.
Si quelqu'un a une idée pourquoi ça ne fonctionne pas, oui du comment il faut faire une changer dynamique la vitesse d'une animation je suis preneur. Sachant que l'optique est de le faire dans une approche MVVM, donc si je pouvais éviter le code-behind ce serait top.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <Window.Resources> <Storyboard x:Key="Storyboard1"> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="_border" Storyboard.TargetProperty="(UIElement.Opacity)" AutoReverse="True" Duration="00:00:01" RepeatBehavior="Forever" SpeedRatio="{Binding ElementName=_slider, Path=Value}"> <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0" /> <SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </Window.Resources> <Window.Triggers> <EventTrigger RoutedEvent="FrameworkElement.Loaded"> <BeginStoryboard Storyboard="{StaticResource Storyboard1}" /> </EventTrigger> </Window.Triggers> <Grid> <StackPanel> <Slider x:Name="_slider" Minimum="0.1" Maximum="10.0" Height="20"/> <TextBox Text="{Binding ElementName=_slider, Path=Value}"></TextBox> <Border x:Name="_border" BorderBrush="Red" BorderThickness="10" Background="Green"> </Border> </StackPanel> </Grid>
Par avance merçi
Partager