GoBack()到上一页UWP

时间:2016-06-30 10:34:05

标签: xamarin uwp

由于PageRenderer我在UWP上启动了一个页面,这个页面允许拍照,我想在用户拿一个pciture时回去。

我的问题是,当我使用硬件按钮返回时,我没有任何问题,但功能goback无法正常工作。

这是我的代码:

 var frame = Window.Current.Content as Frame;
                if (frame != null && frame.CanGoBack)
                {
                    frame.GoBack();
                }

CanGoBack返回false。

所以你有一些想法

由于

2 个答案:

答案 0 :(得分:0)

您需要按下后退按钮,然后强制导航

        public PageContainer()
        {
            this.InitializeComponent();
            SystemNavigationManager.GetForCurrentView().BackRequested += PageContainer_BackRequested;
        }

        /// <summary>
        /// Handles when the user presses the back button 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void PageContainer_BackRequested(object sender, BackRequestedEventArgs e)
        {
             Frame rootFrame = Window.Current.Content as Frame;
             if (rootFrame == null){
                return;
             }

            // Navigate back if possible, and if the event has not 
            // already been handled .
            if (rootFrame.CanGoBack && e.Handled == false)
            {
                e.Handled = true;
                rootFrame.GoBack();
            }
        }

此示例是example provided on the MSDN website

的改编

答案 1 :(得分:-1)

您必须使用BackPressed事件。

public Test()
{
    HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}

private void Test_BackPressed(object sender, BackPressedEventArgs e)
{
      if (this.Layer.CanGoBack) 
      { 
          e.Handled = true; 
          this.Layer.GoBack(); 
      }
}