写点什么

Windows 8 用户界面的主旋律

  • 2011-09-15
  • 本文字数:2502 字

    阅读完需:约 8 分钟

“内容高于窗口部件”是 Windows 8 的格言。Windows 第一次把整个屏幕全部用于显示应用程序的内容,默认没有窗口边框、菜单、工具条这些东西。应用程序内的功能,像配置之类,被藏在“应用程序条”里面,当用户需要的时候才滑入视图范围。

言外之意是强调把“每一颗像素”都贡献给运行中的应用。在 Metro 设计下,界面上没有时钟,没有任务栏,没有通知区。不管哪个应用程序在运行,都会默认占据全部屏幕。当然如果用户希望同时看到两个应用,那也可以各占半边屏幕。

Windows 标准的窗口外框操作被屏幕边缘的手势取代。屏幕左侧边缘成了后退按钮,一般用于返回上一个应用程序。右侧边缘打开“charms”菜单,内含应用程序或者系统插件如搜索、分享等。上下边缘都是前面提过的"应用程序条"。

大多数 Metro 风格的应用程序一打开就是所谓的“Grid Application”布局。在这样的布局里,首先看见的就是放在一个个小格子里的内容。这种风格的应用没有任何内部的窗口框架和部件,所有的交互都直接针对内容本身。

快速、流畅

触摸型应用把性能表现放在很重要的位置。鼠标操作多少有些间接的东西引开用户的注意,而触摸型应用必须立即响应任何交互行为。

Windows 8 有一套系统动画。动画库已经准备好了大多数控件需要的东西,基本不需要投入开发精力。

Windows 8 将引入一套“触摸语言”。内中包含的手势虽然不多,但预计所有应用都会支持这种“语言”。在这套框架下多点触摸变得很基本,用户可以用一根手指摁住物体,同时另一根手指滚动屏幕。相比鼠标同一时间只能操作一个对象是很大的进步。

模态输入和延时输入开始淡出 Windows 8。例如选取一个物体只需要用手指划过去就行,不像以前还要“按下并保持”或者切换到带选择框的显示模式。

应用内导航有一个关键概念叫“Semantic Zoom”。当你放大、缩小 UI 的时候,它不仅是改变大小而已,还会改变显示的内容。在日历程序里面“放大”就会看到某天的情况,再放大就到了某个约会的情况;而“缩小”就会变成周视图和月视图。

Metro 应用一律要求在相同的界面内平等支持触摸操作和鼠标操作。用户将混用触摸、鼠标、键盘来操作,一切都取决于他们刚好在用什么样的设备。Microsoft 假设所有的桌面 PC 都带触摸屏,而所有的平板设备都可以接上鼠标和键盘。为了简化操作和开发,系统内建了一些通用的鼠标功能。例如右键点击将打开应用程序条和其他的上下文相关命令。

屏幕分辨率

所有应用程序必须支持的基本分辨率大小是 1024x768。这也是 Windows 8 支持的最低屏幕大小,所以应用程序无需顾虑更低的分辨率。

其次要求应用程序支持宽屏分辨率 1366x768。一般来说这个大小跟基本分辨率无甚区别。屏幕必须至少达到这个宽度,才能支持下一种模式——Snap View。

所有应用一律要求支持 Snap View。“收起视图”只有 320 像素宽,但应用必须在这个面积内显示用户想知道的一切信息。用户要能在标准视图和“收起视图”之间平滑切换,同时不能丢失视图切换前的位置。

竖屏模式是可选的。Microsoft 决定不强求,因为大多数桌面机和笔记本不好把屏幕转 90 度。不过对于大多数应用来说,能支持是好事。

契约和应用集成

应用集成是 Windows 8 的另一主旋律。操作系统对外公开一套通用功能的契约,比如搜索、分享等功能。

每个应用程序都应该实现分享契约中关于信息来源的那一半。如此才能快速、方便地发送信息给其他应用。“分享”不限于邮件和 Twitter;分享的对象可以是翻译程序、笔记程序,反正你以前会往里面“粘贴”的,都可以。只要实现了信息源契约,应用就自动与所有的分享目标兼容。

搜索契约也很值得关注。用户在“search charm”里面输入查询内容,然后触摸应用程序,就会有一块屏幕空间给它显示结果。因为应用列表始终可见,所以用户可以快速切换到不同的搜索结果。

搜索契约不是给应用程序内部搜索准备的,比如 PDF 阅读器的查找对话框那种。它针对的是那种把搜索页面放在最高位置的应用,比如菜谱应用、维基百科应用这一类。工具程序一般不需要实现搜索契约。

数据采集契约促成应用、服务的数据共享。与其下载数据文件到本地硬盘,应用可以直接从别的应用请求数据。今天的应用要实现 Web 服务接口才能访问各种服务,与之相比,数据采集契约的实现比较透明。如果你的应用支持采集契约,那么就可以从用户安装的所有采集源接收数据。

Live Tiles

Tiles 不是图标,它们是应用的延伸。即使应用已经关闭,Tiles 会给人留下应用还在运行的印象。向用户显示他所关心的信息,可达到唤起用户情感回应的目的。个人化的应用显示用户搜集的图片效果正好,而金融方面的应用不妨显示用户投资组合中的股票报价。

Tiles 也不是桌面小插件,它们大多只有唯一的触摸点。为了保证一致性,Tiles 被规定了模版。虽然有些模版允许完整的控制操作,不过大多数应用只会提供简单的文字或图片给 Windows 排版。

Tiles 有个“瞥一眼”的概念,它们可以稍稍上下滚动不长的距离,多显示一点文字和图片。

通知

通知可以在任何时刻显示在任何应用程序上方。用户可以忽略它、打开它,或者把它滑出屏幕。因为用户可以全局禁止通知功能,所以最好不要依赖它。

注意,并不存在一个收集未读通知的“杂物抽屉”,所以用户只有一次机会看到通知。如果让用户回看错过的通知很重要,那么应用程序应该相应更新其 Live Tile。

推送通知

应用可以订阅推送通知。这样 Windows 就能在应用没有运行的时候,照样更新其 Live Tile。请务必了解,只有当应用在屏幕上物理可见的时候,才是在运行中。所以推送通知往往是保持应用程序随时响应的唯一办法。

配置漫游

Metro 应用一般应该使用配置漫游。当用户在一台设备上配置好某应用,那么不管用户后来换到什么设备,应用始终保持配置不变。后台的设备间同步工作通过用户的 Windows Live 账户进行。

不需要特意保存

在应用之间切换的时候,Metro 应用只有大约 5 秒时间完成暂停前的准备。所以应用程序基本上会三不五时保存自己的状态。保存按钮不是必需的,撤销操作的功能倒很有必要。

理想状态下,用户应该可以在一台设备上更改数据,然后拿起另一台设备立即看到刚才的更改结果。不管是重要的业务信息,还是游戏存档,都应该以这种方式对待。

查看英文原文: Major UI Themes in Windows 8

2011-09-15 06:583742
用户头像

发布了 225 篇内容, 共 63.5 次阅读, 收获喜欢 50 次。

关注

评论

发布
暂无评论
发现更多内容

Netty篇之内存管理器

邱学喆

内存管理器 netty内存管理 jemalloc管理器

Nacos 源码简析之 Nacos Client 自动注册原理

道嗔

源码 nacos

Centos7升级Python2到Python3

入门小站

Linux

读《Software Engineering at Google》(17)

术子米德

架构师成长笔记

【愚公系列】2022年05月 二十三种设计模式(二)-抽象工厂模式(Abstract Factory Pattern)

愚公搬代码

5月月更

在线Excel转YAML工具

入门小站

工具

二、应用高可用设计要点

穿过生命散发芬芳

5月月更 高可用设计

读《Software Engineering at Google》(19)

术子米德

架构师成长笔记

读《Software Engineering at Google》(23)

术子米德

架构师成长笔记

读《Software Engineering at Google》(18)

术子米德

架构师成长笔记

SecurityContextHolder之策略模式源码分析

急需上岸的小谢

5月月更

TypeScript 概述

Emperor_LawD

typescript 5月月更

SAP 电商云的 Spartacus Storefront 部署到 CCV2 的前提条件

汪子熙

typescript 电商 SAP commerce 5月月更

[Day33-02]-[二叉树] 恢复二叉搜索树

方勇(gopher)

LeetCode 二叉树 数据结构和算法

如何在 WordPress 中创建登录页面

海拥(haiyong.site)

WordPress 5月月更

Go链表与切片比较

jinjin

List 链表 slice Go 语言 切片

MyBatis 的动态 SQL超详细讲解

顾言

mybatis 动态SQL

maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)

程序员欣宸

Java Docker 5月月更

ubuntu 18及以上版本配置IP的方法,你get了吗

伍工

Linux 网络

Apache Calcite整体架构及处理流程

不穿格子衬衫的程序员

大数据 Apache Calcite database SQL解析

读《Software Engineering at Google》(24)

术子米德

架构师成长笔记

电阻电路的等效变换 (Ⅱ)

謓泽

5月月更

[Day33-03]-[二叉树] 二叉树展开为链表

方勇(gopher)

LeetCode 二叉树 数据结构和算法

读《Software Engineering at Google》(16)

术子米德

架构师成长笔记

读《Software Engineering at Google》(20)

术子米德

架构师成长笔记

读《Software Engineering at Google》(22)

术子米德

架构师成长笔记

LeetCode 242:有效的字母异位词

武师叔

5月月更

某年某周每一天的时间是多少

入门小站

工具

读《Software Engineering at Google》(21)

术子米德

架构师成长笔记

C语言总结_字符串全方位练习

DS小龙哥

5月月更

《Linux是怎么样工作的》读书笔记

懒时小窝

Linux Linux Kenel

Windows 8用户界面的主旋律_.NET_Jonathan Allen_InfoQ精选文章