在Windows手机中按下后退按键关闭打开弹出窗口

时间:2012-08-08 11:19:04

标签: windows-phone-7.1.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();
}

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

2 个答案:

答案 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();
}