假设我有一个代码

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    var userInfo = SettingsManager.Read<User>(SettingsManager.UserInfoSetting);

    if (e.NavigationMode == NavigationMode.Back && userInfo == null)
    {
        _mainViewModel.NavigationService.GoBack();
    }

    if (e.NavigationMode == NavigationMode.New && userInfo == null)
    {
        _mainViewModel.NavigationService.NavigateTo(new Uri(ViewModelLocator.SettingPageUrl, UriKind.Relative));
    }

    base.OnNavigatedTo(e);
}


当用户第一次运行应用程序时,他将被重定向到设置页面,并且现在可以正常工作。如果用户不想提供他的信息,那么在这种情况下,我可以按返回按钮,以跳过应用程序的主页并退出该应用程序。如果我运行代码,则收到InvalidOperationException Cannot go back when CanGoBack is false.

GoBack()方法调用PhoneApplicationFrame.GoBack()方法进行导航。

最佳答案

您不能以这种方式强行退出。
您可以做的是处理在设置页面上按后退按钮的操作并清除堆栈(允许),然后让后退按钮得到处理-这样用户将由于后退按钮而不是您的通话而退出。

10-07 14:57