Windows phone 8 登录时自动关闭登录页面

Windows phone 8 登录时自动关闭登录页面,windows-phone-8,windows-phone,windows-phone-8.1,Windows Phone 8,Windows Phone,Windows Phone 8.1,我的应用程序中有以下页面导航: AnyPage -> Login -> Register 用户注册后会自动登录到。因此,如果用户返回登录页面并进行了登录,我希望登录页面自动关闭 我试图将一些代码添加到LoginPage.onNavigatedTo方法中,但不起作用 protected override void OnNavigatedTo(NavigationEventArgs e) { this.navigationHelper.OnNavigat

我的应用程序中有以下页面导航:

AnyPage -> Login -> Register
用户注册后会自动登录到。因此,如果用户返回登录页面并进行了登录,我希望登录页面自动关闭

我试图将一些代码添加到
LoginPage.onNavigatedTo
方法中,但不起作用

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        this.navigationHelper.OnNavigatedTo(e);
        if(AccountController.isLogged()){
            Frame.GoBack();
        }
    }
如何操作?

OnNavigatedTo和OnNavigatedFrom方法是正在进行的导航操作的一部分。当您尝试启动一个正在进行的新导航时,导航方法将停止并返回false

简单的技巧是:将OnNavigatedTo设置为异步,并在返回之前添加延迟

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    this.navigationHelper.OnNavigatedTo(e);
    if(AccountController.isLogged()){
        await Task.Delay(1);
        Frame.GoBack();
    }
}
这样做的原因是:导航是在UI线程上处理的。由于事件方法正在返回,因此不会等待它们,如果您在其中返回任务,则当前调用方将完成其当前任务。等待之后发生的任何事情都将排队给调度员,并在调度员有时间时完成(导航操作完成后立即完成)