Mettre à jour une valeur LinearDoubleKeyFrame KeyTime à partir du code

J’ai quelques xaml comme ceci:

         

Ce que j’aimerais faire, c’est mettre à jour les valeurs KeyTime des éléments LinearDoubleKeyFrame partir du code UserControl situé en C #.

Je pensais que je pourrais peut-être faire cela en référençant ces éléments par leur x:Name mais je n’ai pas beaucoup de succès. J’ai également pensé que je pourrais peut-être associer les valeurs à un champ du code, mais aucun succès non plus.

Quelqu’un a-t-il des indices pour me pousser dans la bonne direction?

Merci Phil

Comment avez-vous essayé de référencer les objects LinearDoubleKeyFrame dans le code?

Je pense que vous devez faire quelque chose comme:

 var storyboard = (Storyboard)FindResource("onLoadeducLogo"); var animation = (DoubleAnimationUsingKeyFrames)storyboard.Children[0]; var keyframe1 = animation.KeyFrames[0]; keyframe1.KeyTime = KeyTime.FromTimeSpan(new TimeSpan(0,0,0,1)); // 1 second 
 Image creatureImage = new Image(); Storyboard fadeInFadeOut = new Storyboard(); DoubleAnimationUsingKeyFrames dbAnimation = new DoubleAnimationUsingKeyFrames(); dbAnimation.Duration = TimeSpan.FromSeconds(2); LinearDoubleKeyFrame lDKF1 = new LinearDoubleKeyFrame(); lDKF1.Value = 1; lDKF1.KeyTime = TimeSpan.FromSeconds(0); dbAnimation.KeyFrames.Add(lDKF1); // LinearDoubleKeyFrame lDKF2 = new LinearDoubleKeyFrame(); lDKF2.Value = 0.6; lDKF2.KeyTime = TimeSpan.FromSeconds(0.5); dbAnimation.KeyFrames.Add(lDKF2); // LinearDoubleKeyFrame lDKF3 = new LinearDoubleKeyFrame(); lDKF3.Value = 1; lDKF3.KeyTime = TimeSpan.FromSeconds(0.5); dbAnimation.KeyFrames.Add(lDKF3); // LinearDoubleKeyFrame lDKF4 = new LinearDoubleKeyFrame(); lDKF4.Value = 0; lDKF4.KeyTime = TimeSpan.FromSeconds(1); dbAnimation.KeyFrames.Add(lDKF4); Storyboard.SetTarget(dbAnimation, creatureImage); Storyboard.SetTargetProperty(dbAnimation, new PropertyPath(Image.OpacityProperty)); fadeInFadeOut.Children.Add(dbAnimation);