通用Windows平台(UWP)适应多个设备的应用程序

UWP Apps平台概述

使用UWP应用程序,它变得更容易写一个将在所有Windows 10设备上自然运行的单个应用程序是手机,平板电脑,PC,Xbox等。 al。现在我们不仅希望我们的应用程序能够在设备上运行,我们希望它们在运行时闪耀。在此博客文章中,我们将研究如何采用UWP应用程序中的不同屏幕尺寸的基础知识。

设备和屏幕尺寸

UWP在许多不同的平台上运行,默认情况下,有些不同的平台甚至可能无法使用屏幕。东西(物联网)设备或其他需要唯一UI的设备(IOT) 洪水 这应该在今年晚些时候为几个幸运的开发商提供。虽然这些平台在某些方案中非常有趣,但对于手机,平板电脑和Phablets Aka Baphs(Big A **电话)等移动设备,大部分应用程序将最为开发广泛的应用程序。与Android和iOS应用相比,UWP的独特事物是您的应用程序不仅在移动设备上运行,而且在桌面机器,笔记本电脑和更大的屏幕上运行,如新的 表面枢纽.

Windows 10设备
现在写一旦到处都是运行,看起来很容易做。但创建UWP应用程序的大益处是您可以采用不同的屏幕大小,甚至采用不同的用户输入,如触摸VS鼠标和键盘。但在我们潜入我们如何用XAML编写响应UI的细节之前,我们会看看一些基本的布局规则。

设备和屏幕尺寸

可以如下制作设备的一般分开。

类别 屏幕尺寸 有效像素的宽度 输入
电话 4“到6” 340+ 触碰& Voice
phablet. 6+“到7” 720+ 触碰& Voice
药片 7“至13.3” 1024+ TOCH,手写笔,外部键盘*,鼠标*,语音*
PC和笔记本电脑 13“更大 1024+ 鼠标,键盘,触摸*,gamepads
表面枢纽设备 55“和84” 1024+ 触摸,笔,语音,键盘,远程触摸板

*: 偶尔

基本布局指南

由于UWP应用程序是从地面构建的,以便在各种不同的设备上运行即,平台具有许多帮助者,这使得更容易为多个平台设计设计。一个基本概念是有效的像素。有效像素与实际物理像素不同,因此手机上的有效像素将在更大的屏幕上扩展到更大的物理外观。对物理像素有效的缩放是由框架完成的,并且不需要开发人员的任何特殊出席。设计师。

图像显示对设备认可的不同比例因子。

注意:通常小屏幕确实有非常大的点(DPI.),这也是平台处理的,因此即使您在具有廉价显示的小型设备上运行,即低DPI,文本仍将如在高端显示器上的较高端显示中,即更高的DPI。

缩放基于四个(4)的倍数,因此在定义布局时确保它们是四个方面的倍数。 16.这将确保缩放不会导致奇怪的效果。当使用图标时,而不是使用图像尝试使用字体(例如新的 SEGOE MDL2资产)提供您正在寻找的图标(或足够接近)。虽然Windows 10确实提供了一种根据屏幕尺寸根据图像的不同分辨率选择的机制,但是字体将始终在没有进一步努力的情况下进行比例。

实现适应可用屏幕空间的响应布局

当使用不同的分辨率时,可以执行多种布局调整,以改善通用用户体验(UX)和 - 交互。 UWP根据可用的屏幕空间提供各种方法来调整应用程序的布局。

  1. 根据表单系数和可用屏幕空间更改页面上的元素布局
  2. 回流e.g.当屏幕尺寸增加时添加文本列
  3. 根据设备和它的分辨率展示信息/功能
  4. 替换导航栏等元素,飞出菜单以容纳较小的屏幕庄园
  5. 改变屏幕流程。掌握细节网站

因此,我们可以根据屏幕空间潜入我们如何更改UI元素的布局。

响应式布局

响应为主

UWP应用程序的一个新功能是根据可用屏幕尺寸的可用屏幕尺寸调整控制的布局。应用程序窗口的有效像素宽度。这使UI适应不同的屏幕大小。手机和平板电脑,但也让UI适应窗口在桌面上的尺寸。

假设您的应用程序中有以下屏幕流程和布局:

显示具有少于720个有效像素的应用程序。

应用程序的基本布局如下所示:

<RelativePanel>
    <Rectangle x:Name="Image" Width="80" Height="80" Fill="Gray" Margin="8"></Rectangle>
    <Rectangle x:Name="TextLine1" Height="16" Width="200" Fill="Gray" RelativePanel.RightOf="Image" RelativePanel.Below="" Margin="8,8,8,4"/>
    <Rectangle x:Name="TextLine2" Height="16" Width="200" Fill="Gray" RelativePanel.RightOf="Image" RelativePanel.Below="TextLine1" RelativePanel.AlignLeftWith="TextLine1" Margin="8,8,8,4"/>
    <Rectangle x:Name="TextLine3" Height="16" Width="168" Fill="Gray" RelativePanel.RightOf="Image" RelativePanel.Below="TextLine2" RelativePanel.AlignLeftWith="TextLine1" Margin="8,8,32,4"></Rectangle>
</RelativePanel>

笔记: 渲染物品中的项目 相对帕尔 允许I.E中的元素。矩形以彼此对齐。这是一个新的布局功能,可在Windows 10 UWP应用程序中提供,以前必须使用a 网格 或者 stackpanel.。使用相对布局的好处是我们专注于如何如何为不同屏幕(大小)重新安静内容。

例如,当在平板电脑上显示时,您可能不只想在文本旁边显示一张小型图像,但与横幅一起去。用一个 VisualStateManager. 一个可以轻松地定义最小窗口宽度的触发点,如果触发火灾采用预定义布局的布局:

<VisualStateManager.VisualStateGroups>
    <VisualStateGroup>
        <VisualState x:Name="wideView">
            <VisualState.StateTriggers>
                <AdaptiveTrigger MinWindowWidth="720" />
            </VisualState.StateTriggers>
            <VisualState.Setters>
                <Setter Target="Image.(Width)" Value="720"/>
                <Setter Target="TextLine1.(Width)" Value="720"/>
                <Setter Target="TextLine2.(Width)" Value="720"/>
                <Setter Target="TextLine3.(Width)" Value="600"/>
                <Setter Target="TextLine1.(RelativePanel.Below)" Value="Image"/>
                <Setter Target="TextLine1.(RelativePanel.AlignLeftWith)" Value="Image"/>
            </VisualState.Setters>
        </VisualState>
        <VisualState x:Name="narrowView">
            <VisualState.Setters>
                <!-- Adjust view for narrow view -->
            </VisualState.Setters>
            <VisualState.StateTriggers>
                <AdaptiveTrigger MinWindowWidth="0" />
            </VisualState.StateTriggers>
        </VisualState>
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>

目标的名称匹配 X:名称 给予控件。该页面现在将重新呈现应用程序是否具有更高的720个有效像素:

显示具有超过720个有效像素的应用程序。

该页面还将在在Windows 10台式机上调整窗口大小时调整,该计算机允许用户立即使用多个应用程序,无缝适应新的Windows大小。

结论

在此帖子中,我们看到通用Windows平台应用程序不仅在多个设备上运行,而且在不必创建多页面布局的情况下,平台为开发人员和设计人员提供了创建伟大的用户体验的必要工具上升并不必以某种方式弄清楚屏幕本身的大小。

您可以找到整个项目 GitHub..

Updated: