UWP入门教程1——UWP的前世今生

目录

引言

设备族群

UI 和通用输入模式

  • 通用控件和布局面板
  • 工具
  • 自适应扩展
  • 通用输入处理

 

引言

在本篇文章中,可以掌握以下知识:

  • 设备族群,如何决定目标设备
  • 新的UI控件和新面板帮助你适应不同的设备特征

 

从Windows 8系统开始,微软就 引入了WindowsRT(Windows Runtime),它是Windows App 模型的一个中间阶段。希望能够成为通用应用体系架构。

Windows Phone 8.1发布时,也兼容WRT 。这样有助开发者使用同一代码库创建通用的Windows8 app。

将近三年之后,微软的重头产品Windows 10终于横空出世。Windows 10 开始引入 UWP,更进一步的发展了Windows RunTime 模型,并将WRT 引入了Windows10 内核中。作为系统内核的一部分,UWP 现在提供创建通用的App平台(即App在运行Windows10的所有设备中都可以运行),当然微软内部也做出了改进,UWP 不仅包含了WinRT API,也增加了适应特定设备群的API。UWP 为开发跨设备App提供了可靠的API 层。这就意味着你只需要开发一次,就可在多种设备中运行。并发布到Windows Store,所有的用户都可以下载试用。

Windows universal apps run on a variety of devices, support adaptive user interface, natural user input, one store, one dev center, and cloud services

无论设备的形式和输入模态的不同,UWP 都可以运行,也可以为特殊设备定制。自适应UI控件和新的布局Panel 有助于解决设备屏幕尺寸的多样性。

 

设备族群

Windows8.1 和Windows Phone 8.1 App 还存在操作系统的差异,无论是Windows和Windows Phone。有了Windows 10就不需要将所有的开发精力都集中在操作系统,但需要解决一个或多设备特征。设备族群可以识别API,系统特征,以及用户行为,也决定了可运行某一App的设备集。

Device families

设备族群是搜集的带有版本号和标识符的API集合,设备族群是OS的基础,PC 机运行桌面操作系统,是根据桌面设备族群决定的,智能手机和平板电脑等会运行Mobile OS,是由移动设备族群决定的,等等。

通用设备族群相对而言比较特殊,它不是任何OS 的基础,相反,通用设备族群的API是所有族群的父节点,正因为有了通用设备族群API才保证了每个OS 能够正常呈现到每种设备中。

每个子设备族群在通用族群基础上添加自有的API。使用设备族群的优点在于开发一次,到处运行,无论用户使用哪种设备,手机,平板或PC。App可使用自适应代码实现动态获取设备特征,适应设备。

你的App需要使用哪种设备族群,主要取决开发需求,并且决定影响最终App的呈现:

1. API 集,App运行时需要调用的API

2. API集调用

3. 适应的设备集,即App能够安装的设备类型。

选择设备族群主要由两方面原因决定,API 接口类型,是否创建App时能够无条件调用,以及App需要覆盖的设备范围。

如何做决策:

  • 最大化App 覆盖量
  • 为了实现App 覆盖设备的最大化,保证它能够在尽可能多的设备中运行,可把App目标定位通用设备族群。这样做的目的,App会就可以使用所有设备族群,(从通用设备族群派生的)
  • 限制App 适应某一种设备
  • 限制App适应某一类设备
  • 排除只支持某一特殊版本的设备族群

 

UI 和通用输入

UWP  App能够在具有不同特征的设备中运行。Windows10 提供新的通用控件,布局面板和工具,来帮助开发自适应UI 。例如根据不同的屏幕分辨率,相应的调节UI。

Windows 帮助你实现自适应UI:

1. 提供通用控件和布局面板来根据屏幕分辨率来优化UI

2. 常用输入处理,可解决输入模态多样性的问题,无论通过触摸输入,触摸笔,键盘,还是控制器,都能够统一处理。

3.提供UI 设计辅助工具,能够自适应不同的屏幕分辨率。

4. 自适应扩展可调节分辨率和DPI。

通用控制和布局板

Windows 10 提供了一些新控件,比如日历,拆分视图,在此之前,只有Winodws Phone 提供Pivot 控件 ,现在,通用设备族群也支持Pivot控件。而且控件也做了相应的调整,能够适应大尺寸屏幕。

 

 

Desktop communication app UIPhone communication app UI

使用自适应Panels实现自适应界面

Layout Panel 指定子元素的尺寸和位置的值主要取决于屏幕尺寸,比如StackPanel 会指定子节点顺序排放(垂直或水平)。Grid 与CSS 提供的Grid相似,每个界面元素都对应单元格。

新提供的RelativePanel 是一种布局样式,可以定义各界面元素之间的关系,当屏幕分辨率发生变化时,界面元素会做出相应的调整来适应。RelativePanel能够减少由于元素重新排列导致的一些性能问题。

如下,无论是横向和纵向的,蓝色按钮始终在Texbox1的右边,橙色按钮会放在蓝色按钮下方。

 

Relativepanel example

XAML

<RelativePanel>
    <TextBox x:Name="textBox1" Text="textbox" Margin="5"/>
    <Button x:Name="blueButton" Margin="5" Background="LightBlue" Content="ButtonRight" RelativePanel.RightOf="textBox1"/>
    <Button x:Name="orangeButton" Margin="5" Background="Orange" Content="ButtonBelow" RelativePanel.RightOf="textBox1" RelativePanel.Below="blueButton"/>
</RelativePanel>

在学习完本文之后,我们对UWP平台已经有了基本理解。在进行UWP平台的开发时,还可以借助一些开发工具。ComponentOne Studio for UWP是一套可以编写所有 UWP 平台应用的控件集,包括表格、报表、图表、仪表盘、组织图、地图、PDF、Excel、Word、日程安排、输入、导航等多个控件,有效的帮助开发过程。

 

相关阅读:

微软 Build 2017 开发者大会:Azure 与 AI 的快速发展

是什么让C#成为最值得学习的编程语言

从Visual Studio看微软20年技术变迁

C#开发人员应该知道的13件事情

Visual Studio 2017正式版发布全纪录

 

转载于:https://www.cnblogs.com/powertoolsteam/p/5057444.html

Contents 开发桌面应用 设置开发环境 系统要求 安装开发人员工具 启用设备进行开发 开发人员模式功能和调试 创建一个开发者帐户 入门 概述 适用于 Windows 应用的 Visual Studio 模板 生成适用于 Windows 11 的应用 让你的应用在 Windows 11 上出色表现 设计和 UI 概述 Windows 11 中的设计 Windows 11 设计原则 Windows 11 签名体验 Geometry 颜色 分层和提升 材料 图标 版式 设计基础知识 概述 应用设计简介 导航基础知识 概述 实现基本导航 导航历史记录和向后导航 命令基础知识 内容基础知识 教程 创建用户界面 创建自适应布局 设置控件的样式 布局 概述 页面布局 屏幕大小和断点 响应式设计技术 使用 XAML 的布局 显示多个视图 显示多个视图 使用 AppWindow 使用 ApplicationView 对齐、边距和填充 面板 概述 教程:使用布局面板 拆分视图 自定义面板 自定义面板示例:BoxPanel 附加的布局 转换 概述 3D 透视效果 Z 深度和阴影 控制 概述 控件和事件简介 命令处理简介 基本输入 按钮 复选框 组合框和列表框 超链接 单选按钮 评分控件 滑块 切换开关 集合 概述 列表视图和网格视图 翻转视图 PipsPager 树视图 ItemsRepeater 项目容器和模板 项目容器和模板 数据模板选择 列表视图项模板 网格视图项模板 选择和交互 集合命令处理 “选择模式”概述 轻扫 下拉刷新 筛选集合 其他集合选项和自定义 反转列表 嵌套 UI 对话框和浮出控件 概述 对话框 浮出控件 教学提示 窗体 媒体、图形和形状 动画图标 图像和图像画笔 墨迹 媒体播放 自定义传输控件 形状 Web 视图 菜单和工具栏 菜单和上下文菜单 命令栏 命令栏浮出控件 菜单浮出控件和菜单栏 导航 痕迹导航栏 列表/详细信息 导航视图 Pivot 选项卡视图 人员 联系人卡片 头像图片 选取器 颜色选取器 日期和时间控件 日历日期选取器 日历视图 日期选取器 时间选取器 滚动和布局 Expander 滚动和平移控件 语义式缩放 双窗格视图 状态和信息 进度 工具提示 信息栏 文本 概述 自动建议框 文本块 RTF 块 文本框 富编辑框 密码框 数字框 标签 内容链接 手写视图 样式 概述 颜色 版式 图标 概述 应用图标和徽标 Segoe MDL2 图标 亚克力 Mica 显示焦点 声音 写入样式 XAML 画笔 XAML 样式 XAML 控件模板 ResourceDictionary 和 XAML 资源引用 XAML 主题资源 间距 角半径 移动 概述 计时和缓动 方向性和引力 运动练习 页面过渡 连贯的动画 视差 XAML 中的动画 属性动画 情节提要动画 关键帧以及缓动函数动画 Shell Toast 通知 UX 指南 发送本地 Toast C# 应用 C++ UWP 应用 C++ WRL 应用 其他应用 Toast 内容 Content 架构 计划 toast 其他功能 自定义音频 进度条 挂起更新 自定义时间戳 集合 标头 通知侦听器 已过时 锁屏提醒通知 推送通知 概述 WNS 优先级 将 WNS 流量加入允许列表 由推送通知向导生成的代码 任务栏 将应用固定到任务栏 标题栏 动态磁贴 辅助磁贴 指南 固定到“开始”屏幕 固定到任务栏 桌面应用程序 磁贴内容 磁贴内容架构 特殊磁贴模板 发送本地磁贴通知 可追踪的磁贴通知 主要磁贴 API 磁贴和 Toast 通知的语言、比例和高对比度支持 杂项 通知可视化工具 通知传递方法 通知通道类型 使用 Webpush 和 VAPID 的备用通道 定期通知 输入和交互 概述 输入基础版 指针输入 凝视 笔和 Windows Ink 教程:向应用添加墨迹支持 识别笔划墨迹 存储和检索笔划墨迹 添加 InkToolbar 触摸 鼠标 Keyboard 访问键 键盘加速键 键盘事件 适用于键盘、手柄、遥控器和辅助功能工具的焦点导航 编程焦点导航 响应触摸键盘的存在 使用输入范围更改触摸键盘 文本输入 自定义文本输入 文本缩放 选择文本和图像 输入法编辑器 输入法编辑器要求 ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值