跳过MainPage并在应用程序启动时转到第二个屏幕

时间:2011-12-07 04:19:47

标签: windows-phone-7.1 windows-phone-7

我有一个WP 7.5应用程序。我有一个启动画面,然后我的MainPage.xaml有版权免责声明和开始按钮。用户单击该按钮,它将进入我们的主屏幕(Home.xaml),用户可以在该屏幕上开始与应用程序进行核心交互。

我想要的是:

1:版权屏幕即MainPage.xaml应该仅在用户安装后第一次启动应用程序时出现。随后从应用程序菜单或Tile(s)开始,我不想显示版权页。

2:同样的事情,一旦用户点击开始/接受按钮并转到Home.xaml,他或她无法通过单击后退按钮返回MainPage.xaml,而是从主屏幕单击返回,他们应该退出申请。

到目前为止我做了什么:

1:对于MainPage.xaml的OnNavigateTo我检查了ApplicationSetting键showCopyright。如果没有找到或者是真的,我什么都不做。如果它是假的,那么我使用NavigationService.Navigate到我的Home.xaml。

2:在“开始/接受”按钮上,我将ApplicationSettings键设置为false。

上述方法存在问题:

1:如果我使用HomeScreen的后退按钮,我会进入无限循环。应用程序应退出但不会退出。

问题:

1:上述方法是对的还是有更好的方法?

2:如果我的方向正确,当我在Home.xaml时如何让我的应用程序退出后退按钮?

谢谢,请指点?

编辑:为了记录,我找到了一个关于从Windows Phone应用程序显式退出的一个很好的解释here。从WP7.1 / 7.5开始,没有明确退出Silverlight WP应用程序的内置方法。

2 个答案:

答案 0 :(得分:3)

您可以在后面的按键上删除新页面(Home.xaml)中导航服务的Backentry,这会打破无限循环。

请在Home.xaml.cs中添加以下代码并尝试

//this works only in 7.1 SDK
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
        {
            try
            {
                if (NavigationService.CanGoBack)
                    NavigationService.RemoveBackEntry();
                base.OnBackKeyPress(e);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Exception = " + ex.Message);
            }
        }

答案 1 :(得分:0)

看一下这篇文章,它会向您展示如何添加EULA /免责声明页面并拥有您正在寻找的功能:

http://bjorn.kuiper.nu/2011/09/09/wp7eula/