我的问题是我有一个清单。当我长按列表中的某个特定项目时,它会打开一个上下文菜单,当我点击上下文菜单中的菜单项时,它会打开一个弹出窗口,所以按下硬件后退按钮我想再次返回列表。 所以这样做我的代码是:
protected override void OnBackKeyPress(object sender,System.ComponentModel.CancelEventArgs e)
{
if (calendarDescripton.Visibility == Visibility.Visible)
{
calendarDescripton.Visibility = Visibility.Collapsed;
e.Cancel = true;
}
}
当我点击打开列表的按钮使用此代码后,应用程序退出,它也不会打开列表。
答案 0 :(得分: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。