簡単にするために、MainPage と Page2 を含む新しいアプリを作成します。MainPage には、Page2 に移動するボタンがあります。MainPage.OnBackKeyPress もオーバーライドします。
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
if (MessageBox.Show("Quit?", "Confirm", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
e.Cancel = true;
else
base.OnBackKeyPress(e);
}
Page2 は、Page2 から MainPage に戻るときの長時間の操作をシミュレートするために、オーバーライド OnNavigateFrom を除いて空です。
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
System.Threading.Thread.Sleep(1000);
base.OnNavigatedFrom(e);
}
すべて問題ありませんが、ページ 2 で [戻る] キーを 3 ~ 4 回すばやく押すと、メッセージ ボックスが 2 回ポップアップ表示されます。メッセージボックスが表示されないか、少なくとも表示および非表示になると思います。私のコードに何か問題がありますか? ありがとう。