2017-02-21 1 views
0

Je crée une animation de sélection pour textblock. J'ai réussi à le faire avec doubleanimation déplaçant des blocs de texte sur la toile. Mais le problème est que le texte clignote tout en se déplaçant chaque 0,5 seconde ...C# uwp animation faire du texte flicker

Voici l'exemple de code J'utilise:

 sb1 = new Storyboard(); 
     DoubleAnimationUsingKeyFrames animationKeyFrames = new DoubleAnimationUsingKeyFrames(); 

     var keyFrameStart = new EasingDoubleKeyFrame(); 
     keyFrameStart.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(0)); 
     keyFrameStart.Value = TextWidth; 

     var keyFrameEnd = new EasingDoubleKeyFrame(); 
     keyFrameEnd.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(10000)); 
     keyFrameEnd.Value = -TextWidth; 

     animationKeyFrames.KeyFrames.Add(keyFrameStart); 
     animationKeyFrames.KeyFrames.Add(keyFrameEnd); 

     Storyboard.SetTargetProperty(animationKeyFrames, "(Canvas.Left)"); 
     Storyboard.SetTarget(animationKeyFrames, textBlock1); 

     sb1.RepeatBehavior = RepeatBehavior.Forever; 
     sb1.Children.Add(animationKeyFrames); 

     sb1.Begin(); 

Est-ce que quelqu'un sait une propriété, une mémoire tampon double ou quelque chose comme que pour contourner ce problème?

Répondre

0

En fait, ce problème était plus lié aux performances du périphérique. J'ai vérifié votre code, il n'y a pas de problème dans votre code.

J'ai testé votre code sur différentes configurations des machines. Le phénomène de "scintillement" était différent.

Il existe une solution de contournement pour résoudre ce problème.

Vous pouvez résoudre ce problème en définissant une durée plus longue (par exemple, keyFrameEnd.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(20000));).