2010-08-22 9 views
19

Ceci est un peu lié à la question posée ici la réponse ne concerne pas mon cas car je ne suis pas l'aide de fils:WPF application fonctionne toujours en arrière-plan après la fermeture

WPF Not closing properly

J'ai converti l'un des mon application WinForm à une application WPF, rien de radical ne devait être fait, sauf pour changer quelques mots pour les équivalents WPF/C# 4.0 (MessageBoxButtons à MessageBoxButton, pourquoi la différence d'une lettre?). Quoi qu'il en soit, si j'exécute l'application via le débogueur, il fonctionne bien jusqu'à ce que je viens de le fermer avec le bouton "X" en haut à droite de la fenêtre. La fenêtre de l'application se ferme mais j'ai remarqué que le débogueur affiche toujours l'icône d'arrêt, la vérification dans le Gestionnaire des tâches confirme qu'il est toujours en cours d'exécution.

Je n'utilise aucun autre thread en arrière-plan, donc je sais qu'il n'attend pas autre chose.

Je viens juste de commencer avec WPF mais j'ai supposé que lorsque l'utilisateur ferme l'application, il devrait juste ... fermer?

Merci pour l'aide!

Répondre

33

Quelle est votre shutdown mode? Si c'est explicite, c'est parce que vous n'arrêtez pas explicitement. Si c'est la fenêtre principale, c'est parce que vous n'avez pas assigné la fenêtre principale à Application.MainWindow.

+2

Merci! Je n'ai jamais su qu'il y avait des comportements différents pour fermer une application. J'ai simplement ajouté "ShutdownMode =" OnMainWindowClose "" au XAML de mon application comme indiqué dans votre lien et cela a fonctionné comme un charme! –

9

écrire ce code sur le bouton de fermeture de l'application:

Application.Current.Shutdown() 
+1

Je n'avais pas de bouton de fermeture mais en tapant le x il appelait l'évènement Closed et cela marchait bien pour moi: this.Closed + = (s, e) => Application.Current.Shutdown(); – Despertar

Questions connexes