如何在Windows Phone8中从弹出窗口返回

3

我遇到了一个弹出窗口的问题,我在一个dll中弹出了一个用户控件,并在一个应用程序中调用了这个dll,但是它显示在一个黑色页面上,我不知道它来自哪里。当我按下“<-”按钮时,应用程序直接退出...我无法返回调用它的应用程序的主页。 我想知道如何从弹出窗口返回。我尝试隐藏弹出窗口,但它没有返回到应用程序的主页。

public void change_PIN(OnCCB_ChangeUserPINCall changeUserPINCall) 
{
    Popup ppChangePIN = new Popup();
    ChangePIN changePIN = new ChangePIN();
    ppChangePIN.Child = changePIN;
    ppChangePIN.IsOpen = true;
}

我该如何在弹出窗口的.cs文件中设置ppChangePIN.IsOpen=false以使其消失?
2个回答

2

处理后退按钮的返回键按下事件,如下所示:

步骤1:首先在弹出窗口打开时设置一个标志,如**bool PopupOpen=True**

步骤2:当弹出窗口关闭时,PopupOpen=False

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

         PopupOpen=False;
         e.Cancel = true;
        }
        else
        {}
    }

如果有任何问题,请告诉我...希望它对您有用。

谢谢您的回复!但我找不到PopupOpen的定义,它在WP8上可用吗?True是指真的,对吗? - SevenWow
这只是一个例子,您可以设置一个布尔标志并进行真和假的操作。当您的弹出窗口打开时,标志为true,当您的弹出窗口关闭时,标志为false。 - Mansinh
如果有问题,请让我知道。您可以这样做。 - Mansinh
好的,我明白了,但是在我按下返回按钮后它仍然直接退出。为什么会这样?除了重写OnBackKeyPress之外,我还需要做些什么吗? - SevenWow
1
这里缺少什么?e.Cancel = true; - Swift Sharp
显示剩余12条评论

0
private bool RemovePopup()
{
   if (ppChangePIN == null || !ppChangePIN.IsOpen) 
      return false;
   ppChangePIN.IsOpen = false;
   return true;
}
protected override void OnBackKeyPress(CancelEventArgs e)
{
  if (RemovePopup())
    e.Cancel = true;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接