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);