所以在WP7和WP8中,我在Page2中做了这个,知道我是否来自Page1:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); var lastPage = NavigationService.BackStack.FirstOrDefault(); if (null != lastPage && true == lastPage.source.ToString().Contains("Page1.xaml")) { } }
在WP8.1中做什么?
取消KeyUP事件的处理程序? VB.NET
应用程序设置中的结构数组
在Windows Phone 8.1中,您可以使用Frame(当前页面)的BackStack属性。
var lastPage = Frame.BackStack.Last().sourcePageType
在WP8.1 RunTime中,您有一个用于导航的Frame类,在那里您还可以找到BackStack属性 ,您可以从中读取以前的页面。
示例示例如下所示:
/// <summary> /// Method checking type of the last page on the BackStack /// </summary> /// <param name="desiredPage">desired page type</param> /// <returns>true if last page is of desired type,otherwise false</returns> private bool CheckLastPage(Type desiredPage) { var lastPage = Frame.BackStack.LastOrDefault(); return (lastPage != null && lastPage.sourcePageType.Equals(desiredPage)) ? true : false; } protected override async void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (CheckLastPage(typeof(MainPage))) { // do your job await new MessageDialog("PrevIoUs is MainPage").ShowAsync(); } }
在您的OnNavigatedTo函数中,您可以使用以下代码来确定您上次访问的页面
protected override void OnNavigatedTo(NavigationEventArgs e) { if(this.Frame.BackStack.Count>0) { var lastPage = this.Frame.BackStack[this.Frame.BackStackDepth - 1]; string lastPageName = lastPage.sourcePageType.Name; if(lastPageName == "MainPage") {//This is main page} } }
它适用于wp 8.1 silverlight
var prevIoUsPage = NavigationService.BackStack.FirstOrDefault().source; if (prevIoUsPage!=null && prevIoUsPage.ToString().Contains("MainPage")) { // do your work }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。