2010-01-16 7 views
1

Je souhaite afficher un curseur d'attente pendant un long processus dans une application Prism que j'écris. Je l'ai câblé en utilisant un événement composite WaitCursorRequestEvent<bool>. 'Vrai' signifie montrer le curseur d'attente, 'faux' signifie revenir à la valeur par défaut.Affichage du curseur d'attente?

The Shell est abonnée à l'événement et le traite à l'aide du gestionnaire d'événements suivant:

/// <summary> 
/// Handles the WaitCursorRequest event. 
/// </summary> 
public void OnWaitCursorRequest(bool showWaitCursor) 
{ 
    // Set cursor 
    this.Cursor = showWaitCursor ? Cursors.Wait : Cursors.Arrow; 
    this.ForceCursor = true; 
} 

Le module qui exécute le processus fastidieux publie le cas d'une charge utile « véritable » quand il démarre le processus, et publie à nouveau l'événement avec une charge utile 'false' à la fin du processus.

Le gestionnaire d'événements est appelé dans les deux cas - j'ai testé en définissant un point d'arrêt. Mais le curseur ne change pas. Une idée de ce que je fais mal? Merci.

Répondre

2

peut-être besoin de mettre le curseur d'application à l'échelle aussi bien

Mouse.OverrideCursor = Cursors.Wait 
+1

Set Mouse.OverrideCursor comme indiqué ci-dessus pour afficher le curseur d'attente; définissez-la sur null pour effacer le curseur d'attente et revenir au curseur par défaut. –