Notificação quando a interface do usuário do WPF fecha
Eu estou abrindo uma janela do WPF de um aplicativo de bandeja. Eu uso o seguinte código para abrir a janela:
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;
}
Eu preciso executar a interface do usuário do nível de aplicativo porque ele usa um dicionário de recursos. O problema é que eu preciso executar o código quando a janela é fechada pelo usuário, mas nenhum dos manipuladores de eventos parece estar me notificando.
Eu tentei o seguinte:
gui.Exit += new System.Windows.ExitEventHandler(settings_FormClosed);
gui.MainWindow.Closed += new EventHandler(settings_FormClosed);
Eu também tenteigui.Deactivated
, gui.SessionEnding
, gui.MainWindow.Closing
, gui.MainWindow.Deactivated
e provavelmente alguns outros.
Quando o usuário fecha a janela, esse código é chamado de Shell.xaml:
private void Cancel_Click(object sender, RoutedEventArgs e)
{
presenter.Close();
this.Close();
}
Eu percebo que o App é estático, portanto ele nunca será fechado, mas um desses manipuladores de eventos deve me conectar a um evento de fechamento.
Caso seja útil, o fluxo é o seguinte: TrayApp.cs -> App.xaml -> Shell.xaml
Qualquer sugestão seria apreciada. Desde já, obrigado.