Exemplo n.º 1
0
        /// <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;
 }