通用Windows应用程序导航

时间:2015-12-27 00:10:55

标签: c# win-universal-app

我觉得我在这里真的很蠢......我刚刚花了最后2个小时来搜索应该是一个简单的问题,但我似乎无法让它发挥作用。我要做的就是以下几点:

我在visual studio中创建了一个通用应用程序项目,在项目解决方案下我创建了一个名为“Pages”的文件夹,其中我创建了两个空白页面。我想要的只是让主页直接导航到Page1。回到Windows Phone 8.1时代,我会使用NavigationServices并将其传递给Uri。现在我似乎必须使用以下内容:

this.Frame.Navigate(typeof(Page1));

根本不起作用 - 尝试删除文件夹结构并导航到另一个空白页但似乎“Page1”似乎无法识别。我做错了什么?

很明显我没有很好地描述这个问题。这是我的App结构:

enter image description here

在MainPage中我有以下代码:

namespace TrainPuzzle
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a     Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            this.Frame.Navigate(typeof(Page1));


        }
    }
}

我在Pages.Page1上尝试了相同的代码并且出现了错误的错误。希望这更有意义

1 个答案:

答案 0 :(得分:2)

您无法在构造函数中导航,原因很简单: This.Frame 仍然为null。一旦页面被导航到一个框架,它就会被设置。这样做已经有了实例。

所以你可以在Loaded事件中导航。

但正如许多评论所述:在页面被加载之前导航离开页面意味着您可能事先使用了不同的导航目标,只是浪费了计算资源。

此外,一旦激活了NavigationCache,第二次显示页面时就不会调用构造函数,所以你应该避免使用过多的逻辑。