Windows phone 7 WP7-如何将起始页设置为外部页(在库中)

Windows phone 7 WP7-如何将起始页设置为外部页(在库中),windows-phone-7,navigation,Windows Phone 7,Navigation,我正在努力学习WP7。基本上整个导航概念都很糟糕,但我不想详细介绍。我基本上把它都扔掉了,用我自己的“棱镜式”导航 现在还有一个问题,我有3个应用程序,都使用相同的基础结构库,并从该库中获取页面。AppA和AppB之间的唯一区别是加载的数据库。99%的代码保持不变 我目前在AppA中所做的是手动转到一种介绍页面(基本上只显示初始屏幕),然后,一旦加载此页面,我的框架就会接管并导航到相应的页面(试用版与real版等) 现在,由于WP7的这一强大功能,只允许通过一路导航返回应用程序上的出口,因此想要


我正在努力学习WP7。基本上整个导航概念都很糟糕,但我不想详细介绍。我基本上把它都扔掉了,用我自己的“棱镜式”导航

现在还有一个问题,我有3个应用程序,都使用相同的基础结构库,并从该库中获取页面。AppA和AppB之间的唯一区别是加载的数据库。99%的代码保持不变

我目前在AppA中所做的是手动转到一种介绍页面(基本上只显示初始屏幕),然后,一旦加载此页面,我的框架就会接管并导航到相应的页面(试用版与real版等)

现在,由于WP7的这一强大功能,只允许通过一路导航返回应用程序上的出口,因此想要离开应用程序的用户必须再次通过“加载屏幕”。至少如果他使用后退按钮。我不介意,但我可能会违反市场规则,在“返回的路上”显示加载屏幕

我试着告诉我的框架“如果你第二次进入介绍页面,请快速返回”退出应用程序。抛出异常,似乎不允许我以这种方式退出应用程序

然后我尝试更改属性/WMAppManifest.xml以适应它,尝试类似这样的操作

Name=“\u default”NavigationPage=“/InfrastructureLib;component/Pages/RealStartPage.xaml”

也不起作用。。。我是否遗漏了什么(很确定这只是又一次愚蠢的打字错误),或者我正在尝试做的是不可能的(将应用程序的起始页设置为另一个库中的页面)


如果没有,有人知道如何调整App.xaml以允许从另一个库加载自定义页面作为起始页吗?

关于将不同页面设置为起始页的问题的答案:

您可以从清单文件中删除条目,并从App.xaml.cs调用另一个库中的页面。最好的地方是发射方法

    private void Application_Launching(object sender, LaunchingEventArgs e)
    {
        Uri nUri = new Uri("/InfrastructureLib;component/Gui/Pages/IntroPage.xaml", UriKind.Relative);
        ((App)Application.Current).RootFrame.Navigate(nUri);
    }

我有一个类似的问题,我想根据保存的设置在不同的页面上启动应用程序。我无法直接将根框架的内容设置为WMAppManifest中命名的页面之外的任何内容。我按照前面的建议尝试了Navigate(),直接设置了内容,并设置了源代码。非常违反直觉,但没有任何效果

我最终选择创建一个StartView.xaml来为我进行切换。它只包含

<phone:PhoneApplicationPage x:Class="MyApp.Views.StartView" ...> <ContentControl x:Name="body" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"/> </phone:PhoneApplicationPage> 它的构造函数根据加载的设置填充body.Content

public StartView() { InitializeComponent(); switch (App.Current.Settings.StartPage) { default: body.Content = new MainPage(); break; case "Other": body.Content = new OtherPage(); break; } } 公共StartView(){ 初始化组件(); 开关(应用程序当前设置启动页){ 默认值:body.Content=newmainpage();break; 案例“其他”:body.Content=new OtherPage();中断; } } 这避免了您在Navigate()中注意到的问题,因此您不会在虚拟“加载”页面中导航回来。一个警告是(在禁用页面缓存的情况下),当您向后导航时,将根据当时的当前设置填充正文,这可能与用户从该页面导航时的设置不同。也许这就是你想要的!如果没有,则可以使用瞬态PhoneApplicationService状态轻松解决问题


乱七八糟的?有一点,但当你做的工作不起作用时,你会怎么做?HTH.

我认为这是受支持的,但您必须做一点小小的更改。在WMAppManifest.xml中,而不是 NavigationPage=“/InfrastructureLib;component/Pages/RealStartPage.xaml” 使用 NavigationPage=“InfrastructureLib;component/Pages/RealStartPage.xaml”
松开路径中的第一个“/”。它适用于针对WP 7.1的我。

这不适用于我,当我从清单文件中删除条目时,清单验证失败。