我正在使用c#为Windows Phone 7.1构建应用程序。
当应用程序打开时,如果用户第一次使用它,则转到“设置密码”页面,否则转到“登录页面”。
我想使用NavigationService.Navigate(Uri)
,但我不知道我应该在哪里调用此函数?
答案 0 :(得分:3)
我建议将密码保存到某种(加密的)持久存储中,并尝试在应用启动时检索它。
然后在App.xaml中添加此代码,它应该可以解决这个问题
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
// Only care about MainPage
if (e.Uri.ToString().Contains("/MainPage.xaml") != true)
return;
var password = GetPasswordFromSomePersistentStorage();
// Cancel current navigation and schedule the real navigation for the next tick
// (we can't navigate immediately as that will fail; no overlapping navigations
// are allowed)
e.Cancel = true;
RootFrame.Dispatcher.BeginInvoke(delegate
{
if (string.IsNullOrWhiteSpace(password))
RootFrame.Navigate(new Uri("/InputPassword.xaml", UriKind.Relative));
else
RootFrame.Navigate(new Uri("/ApplicationHome.xaml", UriKind.Relative));
});
}
确保已在App()构造函数
上添加了处理程序RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating);
此外,MainPage.xaml只是一个空页面(在您开始页面时设置),用于捕获初始导航事件。
希望它有所帮助。