WindowsPhone8.1通用应用程序从第二页导航时终止?我的WindowsPhone8.1通用应用程序中有2个页面。我使用带有单击事件代码的按钮从Page1.xaml导航到Page2.xaml:this.Frame.Navigate(typeof(Page2));当我在第2页时,我使用硬件后退按钮,应用程序无一例外地关闭。它只是返回到开始屏幕。我在第2页尝试了以下内容:publicPage2(){this.InitializeComponent();Windows.Phone.UI.Input.HardwareButtons.BackPressed+=HardwareButtons_BackPressed;}voidHardwareButtons_BackPressed(objectsender,Windows.Phone.UI.Input.BackPressedEventArgse){Frame.GoBack();据我所知,我不知道后栈。这是怎么回事,我该如何解决?亲切的问候,Nils这是WindowsPhone8.1中的新功能。如果您使用VS2013模板创建一个新的HubUniversalApp,您会注意到Common文件夹中有一个名为NavigationHelper的类。此NavigationHelper为您提供有关如何正确响应后退按钮的提示。因此,如果您不想使用NavigationHelper,请按以下方法操作:publicBlankPage1(){this.InitializeComponent();HardwareButtons.BackPressed+=HardwareButtons_BackPressed;}voidHardwareButtons_BackPressed(objectsender,BackPressedEventArgse){if(Frame.CanGoBack)e.Handled=true;框架.返回();您也可以在应用程序级别执行此操作,以避免在每个页面上都执行此操作:publicApp(){this.InitializeComponent();this.Suspending+=this.OnSuspending;#ifWINDOWS_PHONE_APPHardwareButtons.BackPressed+=HardwareButtons_BackPressed;#endif}#ifWINDOWS_PHONE_APPvoidHardwareButtons_BackPressed(objectsender,BackPressedEventArgse){FramerootFrame=Window.Current.ContentasFrame;if(rootFrame!=null&&rootFrame.CanGoBack){e.Handled=true;根框架.GoBack();}}#endif如果你想在按下后退按钮时显示一个确认对话框,写下下面的代码如果(Frame.CanGoBack){Frame.GoBack();}else{varmsg=newMessageDialog("确认关闭");varokBtn=newUICommand("OK");varcancelBtn=newUICommand("Cancel");msg.Commands.Add(okBtn);msg.Commands.Add(cancelBtn);IUICommandresult=awaitmsg.ShowAsync();if(result!=null&&result.Label=="OK"){Application.Current.Exit();}}}您可以使用NavigationHelper“模式”女巫也可以帮助您处理生活事件NavigationHelper是Microsoft提供的类(它不是WindowsPhoneAPI的一部分),您可以在其中注册页面,NavigationHelper负责处理FrameHistory。要使用NavigationHelper,您必须将类添加到您的项目并在加载时使用NavigationHelper注册页面。当您添加一个BasicPage(而不是BlankPage)到你的项目中,VisualStudio添加了一个名为common的文件夹,其中包含一些帮助类,包括NavigationHelper类。要使用NavigationHelper注册你的页面,你必须将以下代码添加到你的NavigationHelper的所有页面中。publicsealedpartialclassMySuperCoolPage:Page{privatereadonlyNavigationHelpernavigationHelper;publicMySuperCoolPage(){InitializeComponent();navigationHelper=newNavigationHelper(这个);}protectedoverridevoidOnNavigatedFrom(NavigationEventArgse){this.navigationHelper.OnNavigatedFrom(e);}protectedoverridevoidOnNavigatedTo(NavigationEventArgse){navigationHelper.OnNavigatedTo(e);有关此主题的更多信息以及处理生命周期事件的能力,您可以阅读本文或观看此视频。以上是C#学习教程:WindowsPhone8.1UniversalAppterminateswhennavigationfromthesecondpage?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
