0

私の問題は、リストがあることです。リスト内の特定の項目を長押しするとコンテキスト メニューが開き、コンテキスト メニュー内のメニュー項目をクリックするとポップアップが開くので、ハードウェアの [戻る] ボタンを押すと、もう一度リストに戻りたい. これを行うための私のコードは次のとおりです。

protected override void OnBackKeyPress(object sender,System.ComponentModel.CancelEventArgs e)
    {
        if (calendarDescripton.Visibility == Visibility.Visible)
        {
            calendarDescripton.Visibility = Visibility.Collapsed;
            e.Cancel = true;
        }

    }

リストを開くボタンをクリックしたときにこのコードを使用した後、アプリケーションは終了し、リストも開きません。

4

1 に答える 1

0

他の変更を行う前に、最初にナビゲーションをキャンセルする必要があると思います。これを試して

protected override void OnBackKeyPress(object sender,System.ComponentModel.CancelEventArgs e)
{
    if (calendarDescripton.Visibility == Visibility.Visible)
    {
        e.Cancel = true;
        calendarDescripton.Visibility = Visibility.Collapsed;
    }
}

これで問題が解決しない場合は、if 条件にブレーク ピオントを配置し、if の中に入っているかどうかを確認します。

ブレーク ポイントがヒットしない場合は、ナビゲーション アプローチに何か問題があることを意味します。

ページ ナビゲーションに NavigationService.Navigate() メソッドを使用している場合は、動作するはずです。を使用している場合は App.Current.RootVisual = new MyPage();、BackKey をオーバーライドできません。

于 2013-03-07T08:10:31.980 に答える