Уведомление о закрытии интерфейса пользователя WPF
Я открываю окно WPF из приложения в трее. Я использую следующий код, чтобы открыть окно:
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;
}
Мне нужно запустить пользовательский интерфейс с уровня приложения, потому что он использует словарь ресурсов. Проблема в том, что мне нужно запустить код, когда окно закрыто пользователем, но ни один из обработчиков событий, кажется, не уведомляет меня.
Я пробовал следующее:
gui.Exit += new System.Windows.ExitEventHandler(settings_FormClosed);
gui.MainWindow.Closed += new EventHandler(settings_FormClosed);
Я также пыталсяgui.Deactivated
, gui.SessionEnding
, gui.MainWindow.Closing
, gui.MainWindow.Deactivated
и, возможно, некоторые другие.
Когда пользователь закрывает окно, этот код вызывается из Shell.xaml:
private void Cancel_Click(object sender, RoutedEventArgs e)
{
presenter.Close();
this.Close();
}
Я понимаю, что приложение статично, поэтому оно никогда не закроется, но один из этих обработчиков событий должен подключить меня к закрывающему событию.
В случае, если это полезно, поток выглядит следующим образом: TrayApp.cs - & gt; App.xaml - & gt; Shell.xaml
Мы ценим любые предложения. Заранее спасибо.