/// <summary> /// 在应用程序由最终用户正常启动时进行调用。 /// 将在启动应用程序以打开特定文件等情况下使用。 /// </summary> /// <param name="e">有关启动请求和过程的详细信息。</param> protected override void OnLaunched(LaunchActivatedEventArgs e) { #if DEBUG //if (System.Diagnostics.Debugger.IsAttached) //{ // this.DebugSettings.EnableFrameRateCounter = true; //} #endif NavigationPage rootPage = Window.Current.Content as NavigationPage; if(rootPage == null) { rootPage = new NavigationPage(); Frame rootFrame = rootPage.FindName("rootFrame") as Frame; if (rootFrame == null) { throw new Exception("Root frame not found"); } rootFrame.NavigationFailed += OnNavigationFailed; if (rootFrame.Content == null) { rootFrame.Navigate(typeof(MainPage), e.Arguments); } Window.Current.Content = rootPage; SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested; SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =AppViewBackButtonVisibility.Visible; //Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().TryEnterFullScreenMode(); } //Frame rootFrame = Window.Current.Content as Frame; //// 不要在窗口已包含内容时重复应用程序初始化, //// 只需确保窗口处于活动状态 //if (rootFrame == null) //{ // // 创建要充当导航上下文的框架,并导航到第一页 // rootFrame = new Frame(); // rootFrame.NavigationFailed += OnNavigationFailed; // if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) // { // //TODO: 从之前挂起的应用程序加载状态 // } // // 将框架放在当前窗口中 // Window.Current.Content = rootFrame; //} //if (rootFrame.Content == null) //{ // // 当导航堆栈尚未还原时,导航到第一页, // // 并通过将所需信息作为导航参数传入来配置 // // 参数 // rootFrame.Navigate(typeof(MainPage), e.Arguments); //} //// 确保当前窗口处于活动状态 Window.Current.Activate(); }
public NavigationPage() { this.InitializeComponent(); Current = this; RootFrame = this.rootFrame; }