Windows Template Studio - 导航

Windows Template Studio - Navigation

我正在开发一个简单的 UWP 应用程序。我使用 Windows Template Studio 创建了一个应用程序作为导航窗格,基本 MVVM。我希望该应用程序以没有 NavigationView 控件(导航窗格)的起始页(在我的例子中是登录页)开始,然后在成功登录后转到带有导航窗格的普通视图。这已经完成了,因为我遵循了 https://github.com/Microsoft/WindowsTemplateStudio/blob/dev/docs/navigation.md

上的文档
private ActivationService CreateActivationService()
{
  //This is the default navigation for a NavigationPane project type
  //return new ActivationService(this, typeof(Views.HomePage), new Views.ShellPage());

  //We are going to initialize navigation to a StartPage
  return new ActivationService(this, typeof(Views.StartPage));
}

成功登录后,我首先导航到 Views.ShellPage,然后按说明导航到 Views.HomePage,这工作正常。

我的问题是如何在用户注销时导航回 StartPage 并隐藏导航窗格?简单 NavigationService.Navigate<Views.StartPage>(); 只会导航到起始页,但如何使用导航窗格卸载 shell? 预先感谢您的帮助。

My question is how to navigate back to StartPage and hide the navigation pane when a user logs off?

当你向后导航时,导航窗格仍然存在是因为当前框架不是根框架,你只是在 shell 框架内导航,导航窗格将始终存在,因为它不在内部shell 框架。要解决这个问题,只需在注销时将NavigationServiceFrame 属性设置为根框架,根框架应该由Window.Current.Content.

获取
 private void btnlogout_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 { 
     Frame rootFrame = Windows.UI.Xaml.Window.Current.Content as Frame; 
     NavigationService.Frame = rootFrame;
     NavigationService.Navigate<StartPage>();
 }