原文:快速构建Windows 8风格应用23-App Bar概述及使用规范

本篇博文主要介绍App Bar概述、App Bar命令组织步骤、App Bar最佳实践。

 

App Bar概述

Windows 8 Store应用中的App Bar(应用程序工具栏)起到的作用和Windows Phone中AppBar一样。我们可以向用户提供各种操作接口,实现导航或者触发命令等。

AppBar一般默认是隐藏的,也可以设置为始终可见。我们可以通过清扫屏幕上边缘或下边缘时显示AppBar,AppBar被点击之后或失去焦点后隐藏,当然我们也可以通过编程方式控制AppBar显示或隐藏。

Windows 8 Store应用中通常包含两种AppBar:

1)底部AppBar

底部AppBar通常用于触发命令,并且全局命令在右侧,上下文命令在左侧。当选中上下文命令的项目时,可以通过编程方式调用。如果有单个常用命令,可以将其放置在画布上。菜单弹出可以用于显示相关的命令组。

2)顶部AppBar

顶部AppBar用于沉浸式视图中的导航,例如:添加返回按钮或标题等,也可以用于在页面或视图间进行切换。

 

App Bar命令组织步骤

Step 1:组织命令

确定所有应用命令,然后按照方案或位置组织它们。

我们需要考虑的问题包括:

1)什么命令应该显示在整个应用中;

2)什么命令应该只显示在某些页面上;

3)什么命令应该使用超级按钮或转至设置;

下面是我们浏览一个餐馆应用时可能用到的命令列表:

Step 2:创建命令集

我们需要将相似的命令分组到命令集。AppBar将命令集显示为一个单元,每个命令集之间有一个分隔符。

我们需要考虑的问题包括:

1)哪些命令在功能上相关;

2)哪些命令在功能上相关;

3)做出选择时应该显示哪些命令;

将上面的餐馆应用中命令分组到命令集:

Step 3:创建菜单

我们需要考虑命令集是否在一个命令菜单中更合适。

我们需要考虑的问题包括:

1)AppBar是否太拥挤或存在太多命令而无法适应

2)是否存在一个集可以从更长的标签或互动控件中获益

命令菜单给我们带来的好处是:允许使用更少的空间提供更多选项,并包含互动控件。

上图中“排序”菜单弹出一个简单列表,以方便选择选项,“筛选”菜单弹出一组控件,允许用户按照更复杂的条件筛选项目。

Step 4:将命令添加到AppBar

我们可以通过多种方式将命令放在AppBar中。但是需要尽可能遵守一些命令放置规则:

1)可预测性:尽可能在应用的所有视图上使用一致的互动和命令放置;

2)人体工程学:考虑具体命令的放置能如何改进操作命令的速度或提高易用性;

3)美学:限制命令的数量,避免AppBar看起来太复杂。选择易于理解或预测的图标。保持文本标签简短;

另外还有一个放置命令的常用技巧:

1)将永久性的命令放在右侧

首先将默认命令放在AppBar右侧。若只有少量命令,AppBar可能仅在右侧有命令。

2)使用边缘

如果有大量的命令,可以将不同的命令集分开在左侧或右侧,来平衡AppBar并让命令更容易访问。

3)显示/隐藏已禁用的命令

与某些环境不相关的命令应该隐藏。当它们显示时,不应该破环持久性命令的排序。

4)插入选择命令

用户执行选择后出现的命令会出现在最左侧,任何在此处的命令会向右侧滑动。

Step 5:为常用命令使用标准位置

一些命令是常用的,会在许多应用中出现,因此我们需要建立一致性。

我们在决定将常用命令放在AppBar的何处时应该遵循以下原则:

1)选择命令

和我们的选择相关的命令始终显示在最左侧,无论它们是在选择时显示的上下文命令还是会影响选择的命令。

2)新建命令

如果应用调用“新建”命令来创建(添加、创建、撰写)任何新类型的实体,将该命令放在AppBar的右边。这会为每个“新建”命令提供一致的位置(无论具体的应用或上下文是什么),并使用缩略图来方便访问。

3)删除命令

如果我们的应用将要管理的各个实体可能位于特定应用程序(比如邮件或相机应用)的外部,可以使用“删除/新建”。 “删除/新建”应该始终按此顺序显示。

4)移除命令

如果你的应用将管理某个列表,如代办事项列表、一个天气应用中的城市列表或一个添加到书签中的餐馆列表,可以使用“移除/添加”。“移除”应该始终显示在“添加”的左侧。

5)清除命令

如果你正在对所有可能的项执行破坏性操作,可以使用“清除”。使用命令标签明确表明命令的操作对象,如“清除选择”。

 

App Bar最佳实践

1)一定要以同样的方式放置命令并按命令集对它们进行组织;

2)一定要将上下文命令放在AppBar上,在不更改视图的情况下选择某个项目时, 以编程方式显示AppBar;

3)当命令太多时时,一定要使用菜单;

4)一定要考虑AppBar在贴靠视图和竖屏视图下的呈现;

5)一定将AppBar设计为水平滚动;

6)一定要使用命令、菜单和弹出窗口的默认样式;

7)不要将关键命令(用户完成任务必不可少的命令)放在AppBar上;

8)不要在AppBar中放置登录、注销或其他帐户管理命令;

9)不要将用于文本的剪贴板命令放在AppBar上;

 

关于App Bar更多详细信息可参考MSDN 中:添加应用栏

快速构建Windows 8风格应用23-App Bar概述及使用规范的更多相关文章

  1. 快速构建Windows 8风格应用15-ShareContract构建

    原文:快速构建Windows 8风格应用15-ShareContract构建 本篇博文主要介绍共享数据包.如何构建共享源.如何构建共享目标.DataTransferManager类. 共享数据包 Da ...

  2. 快速构建Windows 8风格应用13-SearchContract构建

    原文:快速构建Windows 8风格应用13-SearchContract构建 本篇博文主要介绍如何在应用中构建SearchContract,相应的原理已经在博文<快速构建Windows 8风格 ...

  3. 快速构建Windows 8风格应用12-SearchContract概述及原理

    原文:快速构建Windows 8风格应用12-SearchContract概述及原理 本篇博文主要介绍Search Contract概述.Search Contract面板结构剖析.Search Co ...

  4. 快速构建Windows 8风格应用3-打包发布应用

    原文:快速构建Windows 8风格应用3-打包发布应用 本篇博文主要介绍如何打包应用程序,成功后如何部署应用程序,最后介绍如何发布应用程序到应用商店中. 如何打包Windows 8风格应用程序呢? ...

  5. 快速构建Windows 8风格应用2-创建调试应用

    原文:快速构建Windows 8风格应用2-创建调试应用 本篇博文主要介绍的是创建应用时可以选择哪些模版,生成默认的Windows 8风格应用解决方案中含哪些文件,最后是如何调试Windows 8风格 ...

  6. 快速构建Windows 8风格应用24-App Bar构建

    原文:快速构建Windows 8风格应用24-App Bar构建 本篇博文主要介绍构建AppBar基本步骤.如何构建AppBar.如何在AppBar中构建上下文命令.如何在AppBar中构建菜单.如何 ...

  7. 快速构建Windows 8风格应用36-商店应用发布流程

    原文:快速构建Windows 8风格应用36-商店应用发布流程 引言 在发布应用之前,我们需要注册开发者账号才能够发布应用.我们可以登录https://appdev.microsoft.com/Sto ...

  8. 快速构建Windows 8风格应用37-常见发布注意事项

    原文:快速构建Windows 8风格应用37-常见发布注意事项 引言 通常我们发布Windows Store应用失败后,会返回一些错误需要我们去修改.我之前在给学生做培训的时候发现大部分同学应用被打回 ...

  9. 快速构建Windows 8风格应用31-构建磁贴

    原文:快速构建Windows 8风格应用31-构建磁贴 引言 磁贴是吸引用户经常使用应用重要手段之一.我们可将应用程序内较好的内容使用磁贴进行展示. 另外应用程序磁贴是应用程序中的核心部分,而且很可能 ...

随机推荐

  1. ehcache历史变迁及常用API的使用(转)

    ehcache是一个用Java实现的使用简单,高速,实现线程安全的缓存管理类库,ehcache提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案.同时ehcache作为开放源 ...

  2. 使用 Visual Studio 对exe文件进行数字签名

    使用"VS2013 开发人员命令提示"运行签名工具.转到要签名的文件目录运行命令: signtool sign /a 要签名的程序.exe signtool 的相关命令 Usage ...

  3. NOI第一天感想&小结

    嘛...中午总算是到了深圳了--在虹桥机场和飞机上和市队大神们一起讨论各种各样奇(sang)葩(bing)的算(ren)法(lei)还是非常开心的,在此再各种膜拜一下尽管没来比赛的FFT大神@陈中瑞 ...

  4. cocos2d-x3.0 解释具体的新的物理引擎setCategoryBitmask()、setContactTestBitmask()、setCollisionBitmask()

    转载请注明出处:游戏开发实验室http://blog.csdn.net/u010019717/article/details/32942641 我在编写游戏的时候遇到了这个问题.  物理引擎其它的内容 ...

  5. socket抓取网页

    #include <iostream> #include <string> #include <netdb.h> #include <stdio.h> ...

  6. eclipse 中 Android sdk 无法更新的问题

    诶,真是麻烦,想下个东西都下不了. 我也好久没折腾过这个了,在家的电脑是早就下载好了的,然后如今又须要下载一份.下不到.网上搜到了资料,记录下来: 第一种方法:       sdk manager - ...

  7. oracle 11g 自己主动调整

    --:自己主动调教计划 begin   dbms_workload_repository.create_snapshot(); end; select /*+ result_cache */ coun ...

  8. 贪心算法(Greedy Algorithm)最小生成树 克鲁斯卡尔算法(Kruskal&#39;s algorithm)

    克鲁斯卡尔算法(Kruskal's algorithm)它既是古典最低的一个简单的了解生成树算法. 这充分反映了这一点贪心算法的精髓.该方法可以通常的图被表示.图选择这里借用Wikipedia在.非常 ...

  9. string.Format对C#字符串格式化

    String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.Stri ...

  10. Delegate,Action,Func,Predicate的使用与区别

    C#4.0推出后,类似Linq,Lamda表达式等许多新的程序写法层次不穷.与之相关的Delegate,Action,Func,Predicate的使用和区别也常常让大家迷惑,此处就结合实际的应用,对 ...