【转】【译】【Win10】在你的程序标题栏中显示后退按钮
原文地址:http://www.sharpgis.net/post/2015/05/21/Displaying-a-backbutton-in-your-app-window
免责声明:这篇文章基于 Windows 10 技术预览版 10122。这可能会在未来发生改变。
在 Windows 10 中,有一些应用,在它们顶部的标题栏里,有一个后退按钮。例如设置中:
我们可以使用 SystemNavigationManager 的 AppViewBackButtonVisibility 属性来控制是否显示这么一个按钮。
使用的方法是这样的:
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
当你让你的 Windows 通用程序在桌面系统运行时,运行上面这段代码后,你可以看见一个一样的按钮出现了。当标题栏有足够空间的时候,我们没必要将它放到其它地方,浪费空间。
当然,在手机设备上,这行代码不是必须的(尽管你调用了看起来也没发生任何变化)。以防万一,最好还是调用一下吧,说不定你的设备支持呢。
// 在导航到每一页的时候,显示或隐藏后退按钮 if (Frame.CanGoBack) SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; else SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed; // 注册后退按钮事件。调用一次就好了,别手贱。例如可以在程序启动时调用 SystemNavigationManager.GetForCurrentView().BackRequested += (s, e) => { if (Frame.CanGoBack) Frame.GoBack(); }; if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) { // 如果设备有后退按钮,那么同样处理下。 Windows.Phone.UI.Input.HardwareButtons.BackPressed += (s, e) => { if (Frame.CanGoBack) { e.Handled = true; Frame.GoBack(); } }; }
现在你可以在桌面和手机平台都获得一个后退按钮了!
不幸的是,BackRequested 事件和 BackPressed 事件的参数是不相同的,所以你不能为两者使用同一个事件处理程序。这点是相当遗憾的,我(原作者)希望微软能够尽快解决一下。
译者(h82258652)注:由于原文直译过来的话,感觉过于生硬,因此有部分采取意译,尽可能跟原文作者的想法保持一致。如果有任何疑难,请查阅原文。谢谢!