决定在Windows Phone 7.1应用程序中启动时要去哪个页面

时间:2011-11-21 04:21:37

标签: c# windows-phone-7.1

我正在使用c#为Windows Phone 7.1构建应用程序。

当应用程序打开时,如果用户第一次使用它,则转到“设置密码”页面,否则转到“登录页面”。

我想使用NavigationService.Navigate(Uri),但我不知道我应该在哪里调用此函数?

1 个答案:

答案 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只是一个空页面(在您开始页面时设置),用于捕获初始导航事件。

希望它有所帮助。