2016-03-25 188 views
0

正如在oficial doc中提到的,有可能处理返回按钮按下,但我无法处理它只做我的逻辑不回去。所以我的代码如下所示:覆盖后退按钮按uwp

//declare event 
public event EventHandler<BackRequestedEventArgs> BackRequested; 

public MainPage() { 
    InitializeComponent(); 

    // tie my event with back action 
    SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested; 
} 

// handle the back event 
private void OnBackRequested(object sender, BackRequestedEventArgs e) { 
    //need to do only my logic here - do NOT go back 
} 

所以有一种方法来获得这种行为。我想它由于Android做到这一点:

@Override 
public void onBackPressed() { 
    //does only my logic 
} 

回答

1

你可以争论参数e.Handled设置为true,这样它可以让你实现自己的逻辑,你可以选择是否要回去通过堆栈。

private void OnBackRequested(object sender, BackRequestedEventArgs e) 
    { 
     Frame rootFrame = Window.Current.Content as Frame; 

     if (rootFrame.CanGoBack) 
     { 
      e.Handled = true; 

      if(condition) //my condition is true so go back through the stack 
       rootFrame.GoBack(); 
      } 
     } 
    } 
+1

'e.Handled = true;'这就是我所需要的,thx – Choletski