为满足业务线应用的需求,我们将继续推出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应用的新发布模型。
继续阅读与本文标签相同的文章
下一篇 :
js canvas实现红包照片效果
-
Apollo服务端设计原理剖析
2026-05-18栏目: 教程
-
LeetCode 841:钥匙和房间 Keys and Rooms
2026-05-18栏目: 教程
-
Flink BucketingSink 源码分析
2026-05-18栏目: 教程
-
特殊时期聊阿里云快照
2026-05-18栏目: 教程
-
如何 3 行代码使用 arduino 接入阿里云物联网平台
2026-05-18栏目: 教程
