MMS • RSS
Continuing our series on UWP for line of business applications, we turn our attention another frequently cited issue: multiple window support.
The Windowing Model
Most developers have simply been asking for the ability to open multiple windows in a single application. But Microsoft is attempting to go further. They want developers to be able to write applications that work equally well in desktop, tablet, and 3D/VR modes. And to do that right there first has to be a way for the OS to tell the application about its environment. Currently the “windowing environment” modes are:
- Overlapped: The traditional Windows design where multiple views can be seen and moved around independently.
- Immersive: Essentially this is the tablet experience where only one view can be seen at a time.
- Holographic: The first two modes are two-dimensional. Holographic mode adds a third dimension, allowing it to be used in mixed/augmented/virtual reality scenarios.
This environment information can differ from view to view. For example, an application may have one view as a normal window on the desktop and a second view displayed in an Oculus Rift headset.
Presenters and Positioners
Presenters are meant to be high level, easy to use APIs. These handle basic functionality such as minimize/maximize, picture-in-picture, and “other simple windowing like that”.
Positioners expose the advanced API. Depending on the environment, they can do things such as position windows relative to other windows, change the size of windows, and move a window to a specific display region or environment.
New Threading Model
Currently each window in a UWP application has its own thread. This makes sharing data between windows difficult. Even basic tasks such as displaying a floating color picker may require spinning up a whole new XAML core.
Under the new “lightweight windows” model, all UWP windows can share the same thread. (Though you can still use separate threads if you desire.)
In 2018 the goal is to offer companion windows (e.g. the floating color picker), flyouts, presenters, lightweight companion windows, environment information, and positioners.
Long term goals include:
- Lightweight independent windows
- Transparency (a popular feature in Windows Vista, now rarely seen)
- Dockable windows
- 3D Positioning
- Advanced Window Grouping
- Additional presenters and positioners
In our next report we’ll look at the new distribution models for UWP apps.