3

アプリケーションからクリックしているときに、Windows の [戻る] ボタンを無効にする必要があります。以下の 2 つの方法を試しましたが、Windows Phone 8 では機能しません

方法 1)

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)

            {

           e.Cancel = true;

           var result = MessageBox.Show("Do you want to exit?", "Attention!",
                                      MessageBoxButton.OKCancel);

        if (result == MessageBoxResult.OK)
        {
           // base.OnBackKeyPress(e);
            return;
        }
        e.Cancel = true;
    }

方法 2 )

a)これをxamlの見出しに書きました

BackKeyPress="MyBackKeyPress"

b)コンストラクターでこれを初期化します

 BackKeyPress += OnBackKeyPress;

c) このメソッドを呼び出します

   private void MyBackKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
    {
        e.Cancel = true; //tell system you have handled it
        //you c
    }

この 2 つの方法は機能していません。戻るボタンをクリックすると、アプリが破壊され、 backbutton の制御を取得できなくなりました。助けはありますか?

4

4 に答える 4

6

認定要件により、戻るボタンを上書きすることはお勧めしません -

アプリの最初の画面から [戻る] ボタンを押すと、アプリを閉じる必要があります。

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh184840%28v=vs.105%29.aspx

このコードを試すことができます

protected override void OnBackKeyPress(CancelEventArgs e)
{
    if(MessageBox.Show("Are you sure you want to exit?","Confirm Exit?", 
                            MessageBoxButton.OKCancel) != MessageBoxResult.OK)
    {
        e.Cancel = true; 

    }
}
于 2013-08-28T05:45:35.597 に答える
1

メソッドで、新しい例外をスローしてMyBackKeyPress、ランタイムでアプリを閉じ、電話のメニューに戻ります。これがそれを達成するための良い方法かどうかはわかりませんが、これは間違いなく問題を解決します。

private void MyBackKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
{
     throw new Exception();
}

これをエミュレーター/デバイスで in なしDubuggingでテストVisual Studioすると、アプリが閉じることがわかります。

于 2014-05-05T20:57:50.940 に答える
0

私も同じことを試しました。しかし、それは機能していません。コード内にブレークポイントを配置し、戻るボタンをクリックしたときに関数に入っていないか、関数を呼び出していないこともわかりました。– user1703145 45分前

XAML でこのイベントをバインドすることを忘れていませんか?

<phone:PhoneApplicationPage ..... BackKeyPress="phoneApplicationPage_BackKeyPress">
于 2013-08-28T07:58:22.497 に答える