2010-02-13 7 views
2

Je suis pause va un storyboard en WPF, donc je l'ai utilisé ci-dessous le code:Mettre en pause un storyboard dans WPF?

Storyboard TheStoryboard; 

//Constructor 
public window 
{ 
    TheStoryboard = (Storyboard)this.FindResource("TheStoryboardName"); 
} 

private void MenuItemPause_Click(object sender, RoutedEventArgs e) 
{ 
    TheStoryboard.Pause(); 
} 

Mais rien ne se passe!
Quelle est la bonne façon de faire cela?

+0

L'événement s'est-il réellement déclenché? Avez-vous connecté le 'MenuItemPause_Click' correctement dans le XAML? L'avez-vous éteint et rallumé? ;) –

+0

Je suis sûr que l'événement se déclenche. Oui je l'ai fait. que voulez-vous dire par «éteignez-le et encore» –

Répondre

3

J'ai trouvé le problème.
J'ai ajouté un déclencheur pour commencer le story-board comme suit:

<Window.Triggers> 
    <EventTrigger RoutedEvent="FrameworkElement.Loaded"> 
     <BeginStoryboard Storyboard="{StaticResource TheStoryboardName}"/> 
    </EventTrigger> 
</Window.Triggers> 

Je l'ai omis, et a ajouté un code C# pour commencer le story-board:

Storyboard TheStoryboard; 

//Constructor 
public window 
{ 
    TheStoryboard = (Storyboard)this.FindResource("TheStoryboardName"); 
    TheStoryboardName.Begin(); 
} 

Maintenant, ce qui suit le code fonctionne bien.

private void MenuItemPause_Click(object sender, RoutedEventArgs e) 
{ 
    TheStoryboard.Pause(); 
} 
1

J'ai rencontré le même problème.

Mais il est câblé que le comportement dans .NET Framework 3.5 & 4 semble être différent.

j'avais un projet qui a été construit via .NET Framework 3.5 et .NET Framework changé à 4.

En 3.5, j'avais aussi le déclencheur que vous avez mentionné pour commencer le story-board. Mais je pourrais encore faire une pause dans mon code.

Dans 4, je ne pouvais pas mettre en pause le storyboard avec la gâchette.

Alors je l'ai déplacé et maintenant le storyboard fonctionne comme je l'espère.

Merci pour votre partage.