在我的应用程序中,我在页面中使用弹出窗口。当我按下后退键时,我需要关闭弹出窗口,如果它打开并留在页面上。当我按下后退键时,弹出窗口没有关闭,页面转到上一页。要关闭弹出窗口,我在back key press event.
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
if (myPopup.IsOpen)
myPopup.IsOpen = false;
else if (NavigationService.CanGoBack)
NavigationService.GoBack();
}
使用此代码时,弹出窗口将关闭,但也会转到上一页。只有当弹出窗口处于关闭状态时我才需要返回。我怎么能这样做?
答案 0 :(得分:1)
您还可以执行以下操作:
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
if (myPopup.IsOpen)
{
myPopup.IsOpen = false;
e.Cancel = true;
}
}
答案 1 :(得分:0)
解决了问题。
而不是使用
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
}
我使用了页面的back key press event
private void PhoneApplicationPage_BackKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
{
if (myPopup.IsOpen)
myPopup.IsOpen = false;
else if (NavigationService.CanGoBack)
NavigationService.GoBack();
}