Ich habe eine Anwendung, die ein Hauptfenster hat die Anzahl der untergeordneten Fenster. Ich möchte in der Lage sein, die Sichtbarkeit der untergeordneten Fenster zu erhalten und sie zu speichern, wenn der Benutzer die Anwendung schließt.Holen Sie sich Windows-Sichtbarkeit bei App-Shutdown
Die Ereignisse habe ich versucht, sind die folgenden
Die Probleme ist, dass sie in der folgenden Reihenfolge aufgerufen werden
ChildWindow.VisibleChanged
ChildWindow.Closing
ChildWindow.Closed
MainWindow.Closing
MainWindow.Closed
Application.Exit
Also, wenn die Anwendung vorhanden ist oder das Hauptfenster schließt alle untergeordneten Fenster unsichtbar sind und es gibt Keine Möglichkeit für mich zu wissen, ob der Benutzer sie geöffnet hat oder nicht.
Gibt es ein anderes Ereignis, auf das ich hören sollte oder einen anderen Weg, es zu tun?
aktualisieren
Ich habe es geschafft, es in einem leeren WPF-Anwendung zu reproduzieren.
public partial class MainWindow : Window
{
Window dummyWindow = new Window();
public MainWindow()
{
Application.Current.MainWindow = this;
InitializeComponent();
this.Loaded += MainWindow_Loaded;
this.IsVisibleChanged +=(s,ev) => Debug.WriteLine("Main visiblity changed");
this.Closing +=(s,ev) => Debug.WriteLine("Main closing");
this.Closed +=(s,ev) => Debug.WriteLine("Main closed");
Application.Current.Exit +=(s,ev) => Debug.WriteLine("App exit");
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
dummyWindow.Show();
dummyWindow.Owner = this;
dummyWindow.IsVisibleChanged += (s,ev) => Debug.WriteLine("Dummy visiblity changed");
dummyWindow.Closing += (s,ev) => Debug.WriteLine("Dummy closing");
dummyWindow.Closed += (s,ev) => Debug.WriteLine("Dummy closed");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Application.Current.Shutdown();
}
}
Ungerade, Kind-Fenster werden nicht unsichtbar, bevor Sie die Chance zu sagen, "Nein, nicht schließen Sie die App" so .. Schließen sollte früher sein. – BugFinder