1

在我的应用程序中,我在页面中使用弹出窗口。当我按下后退键时,如果弹出窗口打开并停留在页面上,我需要关闭它。当我按下后退键时,弹出窗口没有关闭,页面转到上一个。现在要关闭弹出窗口,我在back key press event.

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
    if (myPopup.IsOpen)
        myPopup.IsOpen = false;

    else if (NavigationService.CanGoBack)
        NavigationService.GoBack();
}

使用此代码时,弹出窗口将关闭但也会转到上一页。只有当弹出窗口处于关闭状态时,我才需要返回。我怎样才能做到这一点?

4

2 回答 2

1

您还可以执行以下操作:

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
    if (myPopup.IsOpen)
    {
    myPopup.IsOpen = false;
    e.Cancel = true;
    }
}
于 2012-11-18T14:19:12.613 回答
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();
}
于 2012-08-08T12:39:48.383 回答