このWPFプログラムは、「終了」とラベル付けされたMenuItemをホストするContextMenuと、空のウィンドウを表示します。 「Exit」を選択するとプロセスが終了するはずですが、WindowとContextMenuを閉じるだけです。私は強制的にこのプログラムを終了するつもりはありませんが、それをきれいに終了します。Application.Shutdown()はContextMenuから失敗します
ClickイベントハンドラのApplication.Shutdown()の呼び出しがプログラムのシャットダウンに失敗するのはなぜですか?
using System;
using System.Windows;
using System.Windows.Controls;
class MyApp : Application {
[STAThread]
public static void Main() {
new MyApp().Run();
}
protected override void OnStartup(StartupEventArgs e) {
new Window().Show();
MenuItem menuItem = new MenuItem();
menuItem.Header = "Exit";
menuItem.Click += delegate { Shutdown(); };
ContextMenu contextMenu = new ContextMenu();
contextMenu.Items.Add(menuItem);
contextMenu.IsOpen = true;
}
}
この回答を参照してください:http://stackoverflow.com/questions/606043/shutting-down-a-wpf-application-from-app-xaml-cs – VinayC
あなたのShutdownModeは何に設定されていますか? – Flot2011
ShutdownModeがデフォルトのOnLastWindowCloseです。 –