2009-12-20 9 views
2

Je suis en train de tester une barre de progression WPF et d'essayer de la réinitialiser à son état initial, mais cela ne fonctionne pas.Comment réinitialiser la barre de progression WPF?

Duration duration = new Duration(TimeSpan.FromSeconds(1)); 
DoubleAnimation doubleanimation = new DoubleAnimation(200.0, duration); 
myProgress.IsIndeterminate = true; 
myProgress.BeginAnimation(ProgressBar.ValueProperty, doubleanimation); 
myProgress.Value = 0; 

Avant l'animation, la barre de progression est statique (pas d'animation). Après l'animation, la couleur de la barre de progression est maintenant gris clair (plus claire qu'avant) avec un effet de flash lumineux.

Lorsque vous commentez la durée et la double animation, la barre de progression reste statique. Je vois qu'il y a quelque chose à faire avec cette double animation.

//Duration duration = new Duration(TimeSpan.FromSeconds(1)); 
//DoubleAnimation doubleanimation = new DoubleAnimation(200.0, duration); 
myProgress.IsIndeterminate = true; 
//myProgress.BeginAnimation(ProgressBar.ValueProperty, doubleanimation); 
myProgress.Value = 10; 
myProgress.Value = 0; 

Comment puis-je résoudre ce problème DoubleAnimation? Qu'est-ce que j'oublie ici?

+0

est ici la vidéo pour qui a le même problème http://www.youtube.com/watch?v = YrgdcsHDHRE –

+0

Est-ce que ma réponse a aidé? – Andrew

Répondre

1

Jetez un oeil à ce fil:

How to stop an animation in C#/WPF?

+0

Oui j'étais là. Je n'utilise pas StoryBoard, mais juste du code C# pour tester si cet effet de lueur grise disparaît. –

+0

En effet, c'est un problème avec OS –

0

Utilisez cette forme de DoubleAnimation à la place

DoubleAnimation doubleanimation = new DoubleAnimation(0,200, duration); 

Si vous définissez explicitement à la fois à partir et trop de la valeur plutôt que juste une valeur de destination .

code:

Dans la fenêtre cteur:

myProgress.Maximum = 100; myProgress.Minimum = 0; 

dit alors dans un bouton cliquez sur Gestionnaire

myProgress.IsIndeterminate = false; //shouldn't really need this PB oddity 
myProgress.IsIndeterminate = true; 
myProgress.Value = 0; 

Duration duration = new Duration(TimeSpan.FromSeconds(1)); 
DoubleAnimation doubleanimation = new DoubleAnimation(0,200, duration); 

myProgress.BeginAnimation(ProgressBar.ValueProperty, doubleanimation); 

Le PB est dans un StackPanel, XAML est

<ProgressBar Name="myProgress" Height="20"></ProgressBar> 

Ceci a d'abord été testé sur XP mais voir ci-dessous

Pour une solution Win 7 s'il vous plaît voir ici

link text

+0

Ok, mais l'effet de lueur clignotant gris ne disparaît pas. C'est toujours là. –

+0

J'ai du mal à reproduire l'effet de lueur dont vous parlez. Avez-vous défini d'autres valeurs ailleurs dans le ProgressBar? – Andrew

+0

L'autre chose à essayer est dans votre code basculer l'IsIndeterminate à false puis à la ligne suivante le rendre à true, cela aide-t-il? – Andrew