Mango Jump Start 抜粋:戻るキーの処理をオーバーライドする

Mango Jump Start (03)より抜粋

例えばアプリケーション上でポップアップを表示させている場合、ユーザがポップアップを消すために戻るキーを押下すると既定の戻るキーの動作ではページ全体が前のページに戻されてしまい、ユーザの意図した動作(ポップアップを消す)にならない。このような場合は以下のような方法で戻るキーの挙動を制御してあげます。

xaml:

<phone:PhoneApplicationPage 
    ・・・
    BackKeyPress="OnPhoneApplicationPageBackKeyPress">

cs:

private void OnPhoneApplicationPageBackKeyPress(object sender, CancelEventArgs args)
{
    //ポップアップが開いていたら、ページ遷移ではなくポップアップを閉じる
    if (_popup.IsOpen)
    {
        args.Cancel = true;         //システムにイベントがハンドルされたことを通知
        _popup.IsOpen = false;
    }
}