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

时间: 2024-12-21 20:54:09

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

自定义圆形滚动条(在自定义标题栏中显示)--利用开源项目ProgressWheel(二)

本篇是ProgressWheel使用的第二篇(尾篇),功能是在自定义标题栏中显示ProgressWheel滚动条. 本篇引用的开源项目依然是ProgressWheel,地址: https://github.com/Todd-Davies/ProgressWheel 本篇效果图: 自定义滚动条(在自定义标题栏中显示)的实现: 1)activity_progress_wheel_test. xml: <RelativeLayout xmlns:android="http://schemas.a

Windows 10 UWP程序标题栏设置

原文:Windows 10 UWP程序标题栏设置 在Windows 10程序中,以前只能用于全屏方式的Metro程序现在可以运行在窗口模式下了,并且改了个新名字,叫Windows 通用程序(Universal Windows app),简称UWP程序.新的UWP程序虽然大体上还是和以前的Metro程序差不多的,但还是引入了一点新东西的,本文这里就介绍一下它的标题栏设置的几个特性. 隐藏标题栏: 将应用界面扩展至 Titlebar 区域 CoreApplication.GetCurrentView

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

delphi 简单实现程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,具体代码如下,感兴趣的朋友可以参考下哈 delphi 程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,所以记下 复制代码 代码如下: procedure TMainFrm.FormCreate(Sender: TObject); begin with MainFrm do begin { Position form } Top := 0 ; Left := 0 ; { Go full scr

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

win10的cmd中显示:telnet不是内部或外部命令也不是可运行的程序或批处理? 摘录自:https://blog.csdn.net/haijing1995/article/details/66475546 telnet命令? telnet命令用于登录远程主机,对远程主机进行管理. 举个栗子:在cmd中运行telnet  localhost  8431  也就等同于在浏览器中输入localhost:8431 telnet 127.0.0.1 11211 用于连接 memcached 问题分析

自动化的在程序中显示SVN版本

有时候会有这样的情况,策划拿着应用过来提一个bug,但我们却不好确定策划的手机上装的应用对应的是那个代码版本. 为了解决这个问题,我们希望能在应用上显示出当前应用所对应的代码版本,即svn版本. 构想了下,希望最后达到的效果有: 自动化,不需要每次编译版本的时候有人为的步骤,比如编版本的时候人为修改某个值或者点击某个脚本. 跨平台,对外发布的win32/iOS/Android版本都能正确表现 全面性,无论用Windows上用vs开发/Mac OS上用XCode/Eclipse来进行开发,无论是D

Win10系统总是提示&quot;在商店中查找应用&quot;的关闭方法

Win10系统总是提示"在商店中查找应用"该怎么关闭?win10中打开文件的时候总是提示在商店中查找应用,但是自己的电脑中有程序可以打开这个文件,不需要去商店中下载,该怎么取消这个提示呢?请看下文详细介绍. 有些文件扩展名对于电脑来说较为“古怪”,原因在于该类型文件并没有在当前电脑注册默认打开方式,在Win10遇到此类文件后,就有可能向用户询问是否在商店中查找可打开该文件的程序.一般来说,用户还是习惯于用Win32桌面程序打开这些文件,而不需要去商店中搜索应用.因此传统的本机程序选择更

Windows环境下Python v2.7.9,NotePad++编写程序中涉及中文,执行时CMD中显示乱码的解决办法

例如: 1.使用NotePad++,以默认的"以 UTF-8无 BOM 格式编码"编写: print "一加一等于二" 直接运行后CMD报错: 但是在IDLE中显示正常: 在文件第一行加入注释: # _*_coding:utf-8_*_ 运行后CMD显示乱码,IDLE依然正常: 在字符串前加u(Unicode编码): # _*_coding:utf-8_*_ print u"一加一等于二" 运行后正常,IDLE依然正常: 2. 使用NotePad

[转]将字体嵌入程序资源中 C# Winform

http://social.msdn.microsoft.com/Forums/officeapps/zh-CN/61b717ae-f925-443a-baad-2b85f2564826/cwinformsvs2010 namespace WindowsFormsApplication2 { public partial class Form1 : Form { PrivateFontCollection pfc = new PrivateFontCollection(); public For

WP8.1程序开发中,如何加载本地文件资源或安装在程序包中的资源。

Web 要访问来自 Web 的文件,你可以使用标准的绝对 HTTP URI: <img src="http://www.contoso.com/images/logo.png" alt="Logo" /> 要访问存储在应用附带的框架或库程序包中的文件,请使用绝对 URI(和 ms-appx: 方案): <script src="ms-appx:///Bing.Maps.JavaScript//js/veapicore.js"&g