写点什么

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:583852
用户头像

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

关注

评论

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

架构师训练营第十周课后作业

Gosling

极客大学架构师训练营

架构师训练营第十周学习总结

Gosling

极客大学架构师训练营

食堂就餐卡系统UML设计

简简单单

Mybatis【2.2】-- Mybatis关于创建SqlSession源码分析的几点疑问?

秦怀杂货店

Java 数据库 mybatis

10.1微服务:服务本身的设计,维护及治理

张荣召

Linux IO模式及 select、poll、epoll详解(含部分实例源码)

linux大本营

c++ Linux 后台开发 异步IO epoll

美团Java面试一轮游,太激烈了,问啥啥不会,我该怎么办?

比伯

Java 编程 架构 面试 计算机

10.7作业

张荣召

学习总结--week10

张荣召

数仓搬迁:从方法到实践,带你解决数据一致性对比

华为云开发者联盟

数据仓库 数据 存储 数据校验 搬迁

如何应对Spark-Redis行海量数据插入、查询作业时碰到的问题

华为云开发者联盟

数据库 redis spark 开源 数据

架构师训练营-week10

睁眼看世界

极客大学架构师训练营

年轻人,学好Nginx,走遍天下都不怕

程序员小灰

c++ nginx Linux 服务器 架构师

10.5软件组件设计原则

张荣召

让“数字鸿沟”变为“数字通途”

CECBC

数字化时代 支付产品

区块链创新中国价值链

CECBC

区块链

C语言常用错误代码释义大全,让你编译运行报错不是烦恼

ShenDu_Linux

编译原理 常见错误

10.3微服务网关的技术架构

张荣召

10.4领域驱动设计DDD

张荣召

多线程源码明白了吗?不明白的话来看腾讯大牛给你画的面试重点

小Q

Java 学习 架构 面试 线程

架构师训练营第 10 周作业

netspecial

极客大学架构师训练营

Mybatis【4】-- 关于Mybatis别名定义

秦怀杂货店

Java mybatis

JDBC【4】-- SPI底层原理解析

秦怀杂货店

Java 源码 spi

【Java基础】-- isAssignableFrom的用法详细解析

秦怀杂货店

Java 关键字

阿里要求其内部程序员必须精通的并发编程笔记:原理+模式+应用

Java架构追梦

阿里巴巴 编程 面试 并发 java架构

和同事交流不会kafka怎么行,API奉上,不是大神也能编

小Q

Java 学习 架构 面试

区块链技术赋能信息通信行业信用监管

CECBC

区块链 信用

架构师训练营3期第一周学习总结

简简单单

Mybatis【2.3】-- Mybatis一定要使用commit才能成功修改数据么?

秦怀杂货店

Java 数据库 mybatis

Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息

秦怀杂货店

Java 数据库 mybatis

10.2微服务:落地实践的策略与思路

张荣召

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