この WPF プログラムは、「Exit」というラベルの付いた MenuItem をホストする ContextMenu と、空の Window を表示します。「Exit」を選択するとプロセスは終了しますが、ウィンドウと 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;
}
}