Fermer une fenêtre WPF séparément
Objectif:
De permettre la fermeture de la fenêtre de l'application(s) de manière indépendante, sans affecter les autres. La création de l'application en WPF.
Problème:
Ne pouvez pas fermer la fenêtre(s)
En winform, il suffit d'avoir le code winform.close()
de fermer la fenêtre, mais il ne fonctionne pas dans WPF.
Vous pouvez avoir ce code pour fermer une fenêtre spécifique:
Application.Current.Windows[0].Close();
mais comment serait-il fonctionner si vous avez beaucoup de fenêtres et vous souhaitez fermer une fenêtre spécifique, sans affecter les autres?
OriginalL'auteur What'sUP | 2011-03-19
Vous devez vous connecter pour publier un commentaire.
Utiliser le Application classe pour obtenir les windows par le biais de Application.Windows-propriété exactement comme vous l'avez décrit. Si vous êtes dans le code-behind de la fenêtre, appelez
this.Close();
Configuration pour plusieurs Windows
Définir la fenêtre principale de l' Application.MainWindow de la propriété et de l'ensemble de la Application.ShutdownMode à une valeur appropriée si vous aussi vous souhaitez maintenir l'application ouverte, si la fenêtre est fermée (e.g
App.Current.ShutdownMode=ShutdownMode.OnExplicitShutdown;
).Je l'ai déjà remarqué que certaines personnes ont eu des problèmes avec la ShutdownMode. Une solution de contournement pour ce qui est de l'ouverture de la première fenêtre de l'invisible et à partir de cette fenêtre, vous ouvrez le visible application windows. Cela empêche l'application de clôture si le premier créé fenêtre sera fermée. Cependant, vous devriez être en mesure de résoudre ce problème aussi sur la ShutdownMode-propriété.
Dans les scénarios avec plusieurs fenêtres, vous pouvez utiliser Arrêt pour fermer l'application sans fermer chaque fenêtre.
J'espère que cette réponse est ce que votre question est à propos. Faire un commentaire si pas.
Oui, vous pouvez laisser l'application ouverte la première fenêtre, en créer de nouveaux Fenêtre-instances et de régler la Visibilité de la première fenêtre de caché. Mais comme je l'ai écrit, cela ne devrait pas être nécessaire si vous définissez la ShutdownMode en conséquence (comme je me souviens bien, vous avez à faire c'OnStartup avant toute autre action a eu lieu). Le post suivant explique certaines choses à propos de la WPF-démarrage de l'application. Il peut être intéressant pour vous: ageektrapped.com/blog/...
OriginalL'auteur HCL
Je suis d'accord avec HCL. Vous pouvez utiliser
this.Close();
de code-behind de la fenêtre, ce qui permettra de fermer la fenêtre WPF commewinform.close();
.Ou vous pouvez utiliser le code suivant pour obtenir la fenêtre pour fermer
OriginalL'auteur Nazmul
suffit d'utiliser ce code pour fermer la fenêtre la plus récente
OriginalL'auteur ahmedcool166