UWP-標題欄”后退“按鈕


標題欄”后退“按鈕,系統級導航

  應用必須啟用所有硬件和軟件系統后退按鈕的后退導航。執行此操作的方法是注冊 BackRequested 事件的偵聽器並定義相應處理程序。

  在此處我們為 App.xaml 代碼隱藏文件中的 BackRequested 事件注冊全局偵聽器。如果你想要從后退導航排除特定頁面,或想要在顯示頁面前執行頁面級別代碼,可以在每個頁面中注冊此事件。

Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested +=   App_BackRequested; 

  

  以下是在應用的根框架上調用 GoBack 的相應 BackRequested 事件處理程序。

  此處理程序在全局后退事件上調用。 如果應用內后退堆棧為空,系統可能導航至 應用堆棧中的上一個應用或“開始”屏幕。 桌面模式沒有應用后退堆棧,並且即使在應用內后退堆棧耗盡時,用戶也將停留在該應用中。

private void App_BackRequested(object sender,  
    Windows.UI.Core.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(); 
    } 
}

  

啟用標題欄后退按鈕

支持桌面模式(通常是 PC 和筆記本電腦,但也有一些平板電腦)並啟用了設置(“設置”>“系統”>“平板電腦模式”)的設備不提供帶有系統后退按鈕的全局導航欄。

在桌面模式下,每個應用都在帶有標題欄的窗口中運行。你可以為在此標題欄中顯示的應用提供備用后退按鈕。

標題欄后退按鈕僅在桌面模式下的設備上運行的應用中可用,並且僅支持應用內導航歷史記錄—它不支持應用間的導航歷史記錄。

要點  默認情況下不顯示標題欄后退按鈕。你必須選擇顯示該按鈕。
 

在隱藏代碼文件中,為你想要啟用標題欄后退按鈕的每個頁面重寫 OnNavigatedTo 事件並將 AppViewBackButtonVisibility 設置為 Visible

例如,如果幀的 CanGoBack 屬性值為 true,我們將在后退堆棧中列出每個頁面並啟用后退按鈕。

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    Frame rootFrame = Window.Current.Content as Frame; 
 
    string myPages = ""; 
    foreach (PageStackEntry page in rootFrame.BackStack) 
    { 
        myPages += page.SourcePageType.ToString() + "\n"; 
    } 
    stackCount.Text = myPages; 
 
    if (rootFrame.CanGoBack) 
    { 
        // Show UI in title bar if opted-in and in-app backstack is not empty. 
        SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =  
            AppViewBackButtonVisibility.Visible; 
    } 
    else 
    { 
        // Remove the UI from the title bar if in-app back stack is empty. 
        SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =  
            AppViewBackButtonVisibility.Collapsed; 
    } 
} 

  摘自:MSDN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM