我正在构建此应用程序,它将根据用户的姓名,年龄和位置向用户提供一些信息。
如果应用程序是第一次启动,我想将用户重定向到FirstTimePage.xaml,在那里他可以保存他的姓名,年龄和位置。
如果用户第一次没有打开应用程序,应用程序将从隔离存储中检索名称,年龄和位置,因此无需转到FirstTimePage.xaml
目前,如果存在隔离存储数据,我正在检查MainPage.xaml。如果它们存在,则用户将保留在MainPage.xaml上。如果它们不存在,则将用户重定向到FirstTimePage.xaml。
我的问题:
用户第一次打开应用程序,即使它们被重定向到FirstTimePage.xaml,几帧也会看到MainPage.xaml。甚至不是一秒钟,但它有点难看。所以我试着将“检查”代码放到app.xaml.cs(在启动应用程序时执行的代码块内)
问题在于它无法识别导航代码。它在粗体字“NavigationService.Navigate ....”中给出了错误。
我可以做些什么来解决我的问题?
答案 0 :(得分:2)
为了控制导航,您需要在实际加载页面之前调用Application.Current.RootFrame
来访问NavigationService
。
private void Application_Launching(object sender, LaunchingEventArgs e)
{
//Logic should go here to determine what page needs to load
Uri nUri = new Uri("/Page1.xaml", UriKind.Relative);
((App)Application.Current).RootFrame.Navigate(nUri);
}
请参阅:Setting the start page进行更深入的讨论。