NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

使用Perf和FlameGraph进行系统性能分析

wong

flamegraph perf

独家交付秘籍之招式拆解(第一回)

阿里巴巴云原生

阿里云 云原生 应用交付

Go 语言入门很简单:基准测试

宇宙之一粟

Go 语言 2月月更

网络安全之小程序抓包渗透测试流程

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

性能分析之用户登录TPS低以及CPU被打满问题分析

zuozewei

性能分析 2月月更

人人都是 Serverless 架构师 | 弹幕应用开发实战

阿里巴巴云原生

阿里云 Serverless 架构 云原生

【架构师训练营】模块七作业

樰巳-堕~Horry

架构实战营 「架构实战营」

MyBatis3源码解析(2)数据库连接

Java mybatis

MyBatis3源码解析(5)查询结果处理

Java mybatis

《新程序员》杂志|李鹏辉谈开源云原生消息流系统

Apache Pulsar

开源 架构 云原生 中间件 Apache Pulsar

如何实现一个人管理1000个主播?

优秀

低代码 直播带货, 主播

《MySQL入门很轻松》第4章:数据表的创建修改删除

乌龟哥哥

数据库 2月月更

创新推出 | Serverless 调试大杀器:端云联调

阿里巴巴云原生

阿里云 Serverless 云原生 端云联调

如何做“健康码”的性能压测

阿里巴巴云原生

云原生 压测 健康码

K8s Ingress Provider 为什么选择 MSE 云原生网关?

阿里巴巴云原生

阿里云 Kubernetes 容器 微服务网关 云原生网关

Spring Boot Serverless 实战系列 | 性能调优

阿里巴巴云原生

spring 阿里云 Serverless 云原生 框架

一个cpp协程库的前世今生(二十六)共享栈

SkyFire

c++ cocpp

MyBatis3源码解析(3)查询语句执行

Java mybatis

MyBatis3源码解析(4)参数解析

Java mybatis

MyBatis3源码解析(6)TypeHandler使用

Java mybatis

MyBatis Demo 编写(1)基础功能搭建

Java mybatis

AI生明月,万里共文心

脑极体

Apache RocketMQ + Hudi 快速构建 Lakehouse

阿里巴巴云原生

阿里云 开源 云原生 消息队列

云原生年度技术盘点出炉!乘风破浪正当时

阿里巴巴云原生

阿里云 云原生 年度盘点

MyBatis3源码解析(8)MyBatis与Spring的结合

Java mybatis

SchedulerX 如何帮助用户解决分布式任务调度难题?

阿里巴巴云原生

阿里云 云原生 公有云 SchedulerX

年度盘点|2021 年阿里云可观测实践回顾

阿里巴巴云原生

阿里云 云原生 可观测 Arms Arms 告警运维中心

服务网格 ASM 年终总结:最终用户如何使用服务网格?

阿里巴巴云原生

阿里云 云原生 服务网格 容器服务

11种绕过CDN查找真实IP方法

喀拉峻

网络安全

MySQL RC事务隔离级别的实现

JavaEdge

2月月更

MyBatis3源码解析(7)TypeHandler注册与获取

Java mybatis

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