トレイ アプリから 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;
}
リソース ディクショナリを使用するため、アプリ レベルから UI を実行する必要があります。問題は、ウィンドウがユーザーによって閉じられたときにコードを実行する必要があることですが、どのイベント ハンドラーも私に通知していないようです。
私は次のことを試しました:
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();
}
App は静的であるため、閉じることはありませんが、これらのイベント ハンドラーの 1 つを閉じるイベントに接続する必要があります。
役に立つ場合の流れは次のとおりです: TrayApp.cs -> App.xaml -> Shell.xaml
任意の提案をいただければ幸いです。前もって感謝します。