2017-02-11 103 views
0

我有UWP應用程序,實現下面的代碼連接系統後退按鈕。我的理解是,此事件用於捕獲Windows手機上的硬件後退按鈕,Windows 10標題欄中的後退按鈕和Windows 10平板電腦模式中任務欄上的後退按鈕。UWP平板電腦模式後退按鈕不起作用

硬件和標題欄後退按鈕在我的應用程序中工作,但在平板電腦模式下,按任務欄上的後退按鈕可將我的應用程序移動到背景並導航到開始菜單,無論我在哪裏應用後臺。在這種情況下,BackRequested事件觸發,我的應用程序正在導航回頁面。

protected override async void OnLaunched(LaunchActivatedEventArgs args) 
{ 
    Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += 
     App_BackRequested; 
} 

private void App_BackRequested(object sender, BackRequestedEventArgs e) 
{ 
    NavService.GoBack(); 
} 

想知道爲什麼平板電腦模式後退按鈕會以這種方式表現?我在許多Windows 10個人電腦,表面等上看到了這種行爲。

回答

2

Tablet模式後退按鈕的默認行爲的確是要導出應用程序。爲了防止這種情況發生,您必須確保當您的可以在應用中導航時,還可以將的導航標記爲

private void App_BackRequested(object sender, BackRequestedEventArgs e) 
{ 
    if (NavService.CanGoBack()) 
    { 
     NavService.GoBack();  
     e.Handled = true; 
    } 
} 

你將不得不增加一個CanGoBack()方法,將檢查應用程序FrameCanGoBack財產。

+0

我正在檢查CanGoBack,但是我沒有設置e.Handled = true,這是關鍵。謝謝! – Scott