0

在 Windows phone 8 应用程序中,我需要切换初始视图,而不是总是使用相同的 PhoneApplicationPage 打开应用程序。即主页(如果设置已存在)和设置页面(如果用户第一次打开应用程序)。

我应该怎么做?

目前我采用的方式是:

在 WMAppManifest.xml 中将默认任务设为空

<DefaultTask Name="_default"  />

决定在 Application_Launching 事件处理程序中移动到哪个页面。

private void Application_Launching(object sender, LaunchingEventArgs e)
{
    if (SettingFileExists())
        RootFrame.Navigate(new Uri("Home.xaml", UriKind.Relative));
    else
        RootFrame.Navigate(new Uri("Settings.xaml", UriKind.Relative));
}

这是处理这种情况的最佳方法吗?我的代码有任何潜在问题吗?

4

1 回答 1

1

有很多不同的方法可以做到这一点,没有一种“最好”的方法。

我个人的偏好是使用UriMapper在启动时进行重定向的自定义。
例如

  • 将导航启动 Uri 设置为不存在的特殊内容。例如“启动”
  • 设置自定义 UriMapper:

        RootFrame.UriMapper = new MyUriMapper();
    
  • 然后在 UriMapper 检查特殊的 uri 并采取适当的措施:

    public class MyUriMapper : UriMapperBase
    {
        public override Uri MapUri(Uri uri)
        {
            if (uri.OriginalString == "/StartUp")
            {
                if (!this.dataOperations.IsLoggedIn())
                {
                    return Login.Path;
                }
                else
                {
                    return Main.Path;
                }
            }
    
            return uri;
        }
    }
    
于 2013-11-06T13:37:01.287 回答