首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows应用程序中下一页的自动导航失败

Windows应用程序中下一页的自动导航失败
EN

Stack Overflow用户
提问于 2014-07-21 13:39:28
回答 1查看 976关注 0票数 1

我在Windows应用程序(Windows8.1)中有一个页面X,它在启动屏幕后显示。我希望在页面加载时,在用户能够与页面交互之前,对某些内容进行评估。

根据评估结果,我想做以下两项中的一项:

  1. 只需向用户显示页面X,只在用户单击按钮时导航到页Y
  2. 跳过当前页并自动导航到页Y

1挺好的。

我尝试在构造函数中调用this.Frame.Navigate(typeof(Y)),但由于this.Frame仍然是空的,所以无法工作。然后,我尝试在LoadState和OnNavigatedTo中调用它,但是在这两种情况下,this.Frame都不是null,而this.Frame()方法返回false,这意味着导航失败。在调试过程中,我尝试进入这个方法,但是它没有工作(?)。

一个提示是,当自动调用导航()代码行中的断点时,屏幕仍然显示启动屏幕,因此UI元素似乎还没有加载。因此,最后一个问题是:如何在加载所有元素(或者只是使其工作)的情况下进行推理和自动导航?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-30 05:57:49

我不明白为什么要调用Frame.Navigate(...) in OnNavigatedFrom,但我可以提出两个对我有用的选项:

  1. 导航到OnNavigatedTo中的第二个页面:尽管这并不是开箱即用的,但当指示调度程序执行导航时,它会这样做: 公开密封部分类MainPage :页{ public MainPage() { this.InitializeComponent ();}受保护的覆盖无效OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e);=> {this.Frame.Navigate(SecondPage);};}
  2. 一个更简单的解决方案是在第一个页面的Loaded事件中进行导航: 公开密封部分类MainPage :页{ public MainPage() { this.InitializeComponent();this.Loaded += (发件人,args) => { this.Frame.Navigate(typeof(SecondPage));};}

当然,在这两种情况下,在调用Frame.Navigate(...)之前,您都可以在lambda表达式中添加任何您喜欢的计算。

编辑:作为第三种选择,也许您应该考虑将计算和决策部分移到OnLaunched中的App.xaml.cs中,并将第一页或第二页作为根页面加载,而不是打开第一页并立即导航到第二页?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24866544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档