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

为满足业务线应用的需求,我们将继续推出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应用的新发布模型。

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/08/Windowing-UWP-Applications
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券