Herald.Common.NavigationHelper.NavigationHelper C# (CSharp) Method

NavigationHelper() public method

初始化 NavigationHelper 类的新实例。
public NavigationHelper ( Page page ) : System
page Windows.UI.Xaml.Controls.Page 对当前页面的引用,用于导航。 /// 此引用可操纵帧,并确保 /// 仅在页面占用整个窗口时产生导航请求。
return System
        public NavigationHelper(Page page)
        {
            this.Page = page;

            // 当此页是可视化树的一部分时,进行两个更改: 
            // 1) 将应用程序视图状态映射到页的可视状态
            // 2) 处理用于在 Windows 中向前和向后移动的
            this.Page.Loaded += (sender, e) =>
            {
#if WINDOWS_PHONE_APP
                Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
#else
                // 仅当占用整个窗口时,键盘和鼠标导航才适用
                if (this.Page.ActualHeight == Window.Current.Bounds.Height &&
                    this.Page.ActualWidth == Window.Current.Bounds.Width)
                {
                    // 直接侦听窗口,因此无需焦点
                    Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated +=
                        CoreDispatcher_AcceleratorKeyActivated;
                    Window.Current.CoreWindow.PointerPressed +=
                        this.CoreWindow_PointerPressed;
                }
#endif
            };

            // 当页不再可见时,撤消相同更改
            this.Page.Unloaded += (sender, e) =>
            {
#if WINDOWS_PHONE_APP
                Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
#else
                Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated -=
                    CoreDispatcher_AcceleratorKeyActivated;
                Window.Current.CoreWindow.PointerPressed -=
                    this.CoreWindow_PointerPressed;
#endif
            };
        }