562 votes

Comment quitter une application WPF de manière programmatique ?

Depuis quelques années que j'utilise C# (WinForms), je n'ai jamais utilisé WPF. Mais maintenant, j'adore WPF, mais je ne sais pas comment je suis censé quitter mon application lorsque l'utilisateur clique sur l'élément Exit du menu File.

J'ai essayé :

this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();

Parmi beaucoup d'autres. Rien ne fonctionne.

17voto

TimothyP Points 6043

Il ne devrait pas y avoir de message Application.ShutDown() ; ou .Exit().

L'application est une classe statique. Elle ne fait pas référence à l'application en cours Vous devez accéder à l'application actuelle et la fermer comme ceci :

Application.Current.Shutdown();

7voto

wuminqi Points 138

D'après ce que j'ai compris, Application.Current.Shutdown() a aussi ses inconvénients,

si vous voulez afficher une fenêtre de confirmation pour permettre aux utilisateurs de confirmer ou non la sortie, Application.Current.Shutdown() est irréversible.

9 votes

Je ne comprends pas. Nous pouvons obtenir la confirmation de l'utilisateur avant d'appeler Application.Current.Shutdown() cependant.

3 votes

Je ne vois pas pourquoi vous devriez confirmer. Trop de confirmations est une très mauvaise chose. Le fait que quelqu'un ait pris la peine de cliquer pour ouvrir le menu Fichier, de se déplacer jusqu'au bas du menu Fichier, puis de cliquer sur Quitter, confirme à peu près qu'il ne souhaite plus utiliser l'application.

0 votes

Veer : Dans mon cas, la fenêtre de confirmation apparaît bien, mais même si vous choisissez "annuler" dans la confirmation, l'APP principale sort.

7voto

Ravi Points 11
private void _MenuExit_Click(object sender, RoutedEventArgs e)
{
   System.Windows.Application.Current.MainWindow.Close();
}

//Override the onClose method in the Application Main window

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
    MessageBoxResult result =   MessageBox.Show("Do you really want to close", "",
                                          MessageBoxButton.OKCancel);
    if (result == MessageBoxResult.Cancel)
    {
       e.Cancel = true;
    }
    base.OnClosing(e);
}

0 votes

Ce n'est pas la réponse à la question, il veut seulement savoir comment quitter l'application wpf.

0voto

Tijo Points 43

Très simple, utilisez le code ci-dessous

Application.Current.Shutdown();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X