0

私が構築しているのは、基本的に、テキストフィールドと結果のリストを備えた単一ページの検索アプリケーションです。このアプリケーションは1ページのみで構成されるため、電話でハードウェアの戻るボタンをタップすると、アプリが強制終了され、ユーザーがアプリの開始に移動します。

この標準的な動作をなんとかしてオーバーライドして、この同じページで以前に成功した検索結果にユーザーを誘導できるようにすれば、ユーザーのエクスペリエンスが大幅に向上すると思います(存在する場合は、アプリを終了します。通常のバックで十分です)。

問題は、この方法でバックナビゲーションをオーバーライドできるかどうか、そして可能であればどのようにオーバーライドできるかということです。

4

3 に答える 3

1

OnBackKeyPressページ内のメソッドをオーバーライドすることで、ハードウェアの戻るキーが押されたことをキャッチできます。ページを終了するのではなく、内部アクションを実行する場合を検出できます。

これは、MSDNのMSDNに記載されています。

    protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
    {
        if (...)
        {
            // don't want to exit the app in this case
            e.Cancel;
        }

        base.OnBackKeyPress(e);
    }

ただし、バックキーを使用してアプリケーションを終了しないように注意してください。そうしないと、アプリケーションがMarketplace認定に失敗する可能性があります。

于 2012-12-04T12:47:47.620 に答える
0
protected virtual void OnNavigatingFrom(
    NavigatingCancelEventArgs e
)

ページのOnNavigatingFromをオーバーライドし、e.Cancel=trueを実行します

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
e.Cancel = true;
//Other code

}

http://msdn.microsoft.com/en-us/library/ms607458(vs.95

于 2012-12-04T11:11:11.067 に答える
0

これを行う必要があります:

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
 e.Cancel = MessageBox.Show("Exit?", "Page", MessageBoxButton.OKCancel) != 
 MessageBoxResult.OK;
 base.OnBackKeyPress(e);
}
于 2014-03-31T11:29:27.733 に答える