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

posted @ 2016-05-21 21:35  __疯子  阅读(1861)  评论(0编辑  收藏  举报