原文地址: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)注:由于原文直译过来的话,感觉过于生硬,因此有部分采取意译,尽可能跟原文作者的想法保持一致。如果有任何疑难,请查阅原文。谢谢!

【转】【译】【Win10】在你的程序标题栏中显示后退按钮的更多相关文章

  1. Source insight 中 标题栏路径显示完整路径的方法

    在source insight 的标题栏中显示完整路径名的方法.Options -> Preferences -> Display -> Trim long path names w ...

  2. [原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥)

    [原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥) nohacks 发表于 2016-5-29 17:12:51 https:// ...

  3. win10周年更新后程序各种卡死,进程无法结束怎么破?

    最近THINKPAD T460P更新了WIN10周年版后程序各种卡死,运行一段时间,各种程序就开始崩溃,进程无法结束,最终只能强制关机. 这个BUG微软已经确认了,安装了SSD+HDD双硬盘的WIN1 ...

  4. delphi 程序全屏显示无标题栏,覆盖整个屏幕

    delphi 程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,所以记下 procedure TMainFrm.FormCreate(Sender: TObject); begin w ...

  5. 安卓程序中手机后退键与标题栏后退键是不同的,前者回出发onBackPressed()函数,后者需要重重写temclick函数

    安卓程序中手机后退键与标题栏后退键是不同的,前者回出发onBackPressed()函数,后者需要重重写temclick函数

  6. win10的cmd中显示:telnet不是内部或外部命令也不是可运行的程序或批处理?

    win10的cmd中显示:telnet不是内部或外部命令也不是可运行的程序或批处理? 摘录自:https://blog.csdn.net/haijing1995/article/details/664 ...

  7. delphi程序全屏显示无标题栏覆盖整个屏幕

    delphi 简单实现程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,具体代码如下,感兴趣的朋友可以参考下哈 delphi 程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时 ...

  8. win10 64位专业版系统中显示32位dcom组件配置的方法

    word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...

  9. 【WinRT】【译】【加工】在 XAML 中制作圆形图片

    原文:[WinRT][译][加工]在 XAML 中制作圆形图片 原文地址:http://timheuer.com/blog/archive/2015/05/06/making-circular-ima ...

随机推荐

  1. V4 V7 V13支持包的区别

    三者均为支持包,可以让低版本系统使用高版本特性,支持最小版本有差异 V4支持1.6以上 V7支持2.1以上 V13支持3.2以上 V7依赖V4

  2. 命名空间出错 namespace Web.Skin.@default

    namespace Web.Skin.default会报错 因为default是关键字/保留字,所以需要在前面加@符号; namespace Web.Skin.@default

  3. Cookie的Domain属性

    Cookie 加了Domain后就写不进去了(不加domain就可以写进去了) 本地测试的时候需要把domain换成localhost cookie跨域的问题,意思就是说A.com下能访问B.com域 ...

  4. MyBatis多对多查询

    -------------------siwuxie095                                 MyBatis 多对多查询         以订单和商品为例,即 一个订单可 ...

  5. 鼠标经过的图片高亮显示,其余变暗效果[xyytit]

    初始代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  6. python之socket运用1

    先看下服务端的代码 import socket ip_bind = ("127.0.0.1",3000) sk = socket.socket() sk.bind(ip_bind) ...

  7. 'wmic' 不是内部或外部命令,也不是可运行的程序 解决方法

    在环境变量中查看变量名Path下的变量值是否有以下讯息? 如没有复制(Ctrl+C).黏贴(Ctrl+V)→确定即可. %SystemRoot%;%SystemRoot%\system32;%Syst ...

  8. ROS Learning-009 beginner_Tutorials ROS服务 和 ROS参数

    ROS Indigo beginner_Tutorials-08 ROS服务 和 ROS参数 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...

  9. 四种强制类型转换的总结(const_cast、static_cast、dynamic_cast、reinterpreter_cast)

    四种强制类型转换的总结(const_cast.static_cast.dynamic_cast.reinterpreter_cast) 转载 2011年10月03日 23:59:05 标签: stru ...

  10. .net体系与java体系

    对于.NET Framework体系结构,参考了"你必须知道的.NET"并”借用“别人的经典体系结构图从宏观上说明一下我的理解. 图1 简单的说下几个名词: CLR: 通用语言运行 ...