写点什么

Universal Windows Platform(UWP)应用的窗口特性

2018 年 8 月 16 日

为满足业务线应用的需求,我们将继续推出 Universal Windows Platform(UWP)系列文章。下面,我们将注意力转向另一个备受关注的问题,即多窗口支持。

窗口模型

是否可以在单个应用中打开多个窗口,这是许多开发人员一直关注的问题。Microsoft 在此上迈出了更大的一步,支持开发人员实现可在桌面、平板和 3D/VR 模式下同样工作良好的应用。为此,首先操作系统必须能以用某种方式将其环境信息告知给应用。当前的“窗口环境”(Windowing Environment)模式包括:

  • 重叠模式:这是传统的 Windows 设计,即多个视图同时可见,并可各自独立移动。
  • 浸入模式:本质上而言该模式就是平板的操作体验,即同一时间只有一个视图可见。
  • 全息图模式:前两种模式都是二维的。而全息图模式添加了第三个维度,支持在混合显示、增强现实和虚拟现实场景中使用。

不同视图的环境信息可以各不相同。一个应用可能具有一个视图作为正常窗口显示在桌面上,而另一个视图则显示在 Oculus Rift 头盔中。

呈现者(Presenter)和定位者(Positioner)

呈现者终究是一些高层的易用 API。它们实现一些基本功能的处理,例如最大化 / 最小化、画中画,以及“其它此类基本窗口”。

定位者提供一些高级 API。它们可以根据不同的环境完成一些任务。例如,相对于另一个窗口定位当前窗口、更改窗口的大小,将窗口移动到指定的显示区域或环境中。

新线程模型

当前,UWP 中的每个窗口分别对应一个线程。这使得窗口间难以共享数据,甚至对于一些基本任务同样如此。例如,显示一个浮动颜色拾取器,可能需要转动(spinning up)整个新 XAML 内核。

使用新的“轻量级窗口”模型,所有的 UWP 窗口可共享同一线程(开发人员依然可以根据自身喜好使用独立的线程)。

窗口的路线图

2018 年,UWP 窗口的目标是提供伴生窗口(例如,浮动颜色拾取器)、浮出(flyout)、呈现者、轻量级伴生窗口、环境信息和定位者等特性。

其长期目标包括:

  • 轻量级独立窗口。
  • 透明(该特性曾在 Windows Vista 中广为采用,但是现在罕为使用)。
  • 可 Docker 化的窗口。
  • 3D 定位。
  • 高级窗口分组。
  • 更多的呈现者和定位者。

在下一篇文章中,我们将介绍 UWP 应用的新发布模型。

查看英文原文: Windowing In Universal Windows Platform (UWP) Applications

2018 年 8 月 16 日 06:26907
用户头像

发布了 376 篇内容, 共 93.8 次阅读, 收获喜欢 214 次。

关注

评论

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

4月日更挑战|初夏开更,新人领书

InfoQ写作平台官方

活动专区 4月日更

大厂面试必须掌握的 Linux 性能优化题

倪朋飞

Linux 面试 性能优化

探索js让你的网页“自己开口说话”

云小梦

JavaScript web音视频 audioContext API

美团点评高级1234面:算法+HashMap+Zookeeper+线程+Redis+kafka

钟奕礼

Java 编程 程序员 架构 面试

朱嘉明:《量子时代和数字经济2.0 》推荐序

CECBC区块链专委会

数字经济

新动能 · 新机遇:SaaS软件提供商 Zoho 25 周年战略再升级

科创人

Redis 期中测试

escray

redis 极客时间 学习笔记 Redis 核心技术与实战 4月日更

2021阿里面试通关手册必备:5000字面经解析(技术/攻克)

比伯

Java 架构 面试 程序人生 计算机

架构培训作业

肖春

架构师训练营

勇做全球区块链“分布式存储”领航

CECBC区块链专委会

分布式

莫高窟永不褪色的微笑,照耀在华为未曾止步的数据保护征程

脑极体

区块链的创新技术给奢侈品行业带来了新的机会

CECBC区块链专委会

奢侈品

Redis为什么变慢了?一文讲透如何排查Redis性能问题 | 万字长文

云流

Java redis 程序员 架构 计算机

WebRtc学习之旅 —— 初认识

小驰嘻嘻

gorm源码阅读之schema

werben

golang gorm

百家号在线视频编辑器的技术演进

百度Geek说

前端 前端框架

软件架构设计

cafebaby

源中瑞智慧平安社区--为平安生活助力

13530558032

凡尔赛一波:凭这份阿里面试突击指南,我已经拿了9张Offer

程序员小毕

Java 程序员 架构 面试 分布式

访问控制相关概念及常见模型

龙归科技

身份和访问管理

Golang 泛型浅析

David Liu

golang 云原生 编译器 开源代码 语言

GitHub已封杀!阿里内部金三银四Java面试题被泄露!

Crud的程序员

Java 架构 Java工程师

堪称最全的JAVA开发手册(基础+框架+分布式微服务+调优)

周老师

Java 编程 程序员 架构 面试

Java高级研发:2021阿里天猫、中间件、蚂蚁金服JD要求+面题答案

钟奕礼

Java 编程 程序员 架构 面试

历史命令被黑客删除?教你实时备份

运维研习社

Linux 4月日更 服务器安全

零基础学Tableau系列 | 01—Tableau简介、条形图与直方图

不温卜火

数据可视化 数据清洗 4月日更

拥抱云原生,基于eBPF技术实现Serverless节点访问K8S Service

UCloud技术

容器 云原生 k8s serverles

专科出身,2年进入苏宁,5年跳槽阿里,论我是怎么快速晋升的?

钟奕礼

Java 编程 程序员 架构 面试

WebRtc学习之旅 —— Android端应用开发

小驰嘻嘻

区块链电子合同--赋能企业数字化转型

13530558032

1.4 Go语言从入门到精通:Go代理goproxy

xcbeyond

golang Go语言从入门到精通 4月日更 goproxy

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

Universal Windows Platform(UWP)应用的窗口特性-InfoQ