Juste au cas, je vais ajouter mes deux cents.
Mon problème était que je n'ai pas fait assez de dépannage. Ma fenêtre était une fenêtre enfant qui pourrait être ouvert, fermé et a rouvert ses portes, donc j'ajouté ce qui suit pour l'empêcher de fermer complètement:
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
e.Cancel = true;
this.Hide();
}
Cependant, quand Window.Close a été appelé, il ne cachait la fenêtre. J'ai finalement pris sur et ajouté ce qui suit:
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
e.Cancel = true;
this.Hide();
}
public void Close() {
this.Closing -= Window_Closing;
//Add closing logic here.
base.Close();
}
Cela fonctionne très bien - il supprime le gestionnaire d'événements empêchant la fenêtre de fermeture, puis ferme.
La classe Window dans WPF n'a pas de méthode Dispose()! –
Peut-être que je devrais lire les docs en premier? –