Powiadomienie o zamknięciu interfejsu WPF
Otwieram okno WPF z aplikacji na tacy. Do otwarcia okna używam następującego kodu:
if (gui == null)
{
gui = new App();
gui.MainWindow = new mainWindow();
gui.InitializeComponent();
IsUIOpen = true;
}
else if (!IsUIOpen)
{
gui.InitializeComponent();
gui.MainWindow.Show();
gui.MainWindow = new mainWindow();
IsUIOpen = true;
}
Muszę uruchomić interfejs użytkownika z poziomu aplikacji, ponieważ używa on słownika zasobów. Problem polega na tym, że muszę uruchomić kod, gdy okno jest zamknięte przez użytkownika, ale żadna z procedur obsługi zdarzeń wydaje się mnie nie powiadamiać.
Próbowałem:
gui.Exit += new System.Windows.ExitEventHandler(settings_FormClosed);
gui.MainWindow.Closed += new EventHandler(settings_FormClosed);
Próbowałem teżgui.Deactivated
, gui.SessionEnding
, gui.MainWindow.Closing
, gui.MainWindow.Deactivated
i prawdopodobnie kilka innych.
Gdy użytkownik zamyka okno, ten kod jest wywoływany z Shell.xaml:
private void Cancel_Click(object sender, RoutedEventArgs e)
{
presenter.Close();
this.Close();
}
Zdaję sobie sprawę, że aplikacja jest statyczna, więc nigdy się nie zamknie, ale jedna z tych procedur obsługi zdarzeń powinna mnie podłączyć do zdarzenia zamykającego.
W przypadku, gdy jest to przydatne, przepływ jest następujący: TrayApp.cs -> App.xaml -> Shell.xaml
Wszelkie sugestie będą mile widziane. Z góry dziękuję.