文件夹

引言

设备族群

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。全部的用户都可下面载试用。

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

设备族群

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

设备族群是搜集的带有版本号号和标识符的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控件。并且控件也做了对应的调整,可以适应大尺寸屏幕。

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

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

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

例如以下,不管是横向和纵向的,蓝色button始终在Texbox1的右边。橙色button会放在蓝色button下方。

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、日程安排、输入、导航等多个控件,有效的帮助开发过程。

UWP 新手教程1——UWP的前世今生的更多相关文章

  1. UWP 新手教程2——怎样实现自适应用户界面

    系列文章 UWP新手教程1--UWP的前世今生 如上文所说的,布局面板依据可用的屏幕空间.指定界面元素的大小和位置. 比如StackPanel 会水平或垂直排列界面元素.Grid 布局与CSS 中的表 ...

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

    目录 引言 设备族群 UI 和通用输入模式 通用控件和布局面板 工具 自适应扩展 通用输入处理 引言 在本篇文章中,可以掌握以下知识: 设备族群,如何决定目标设备 新的UI控件和新面板帮助你适应不同的 ...

  3. UWP 入门教程2——如何实现自适应用户界面

    系列文章 UWP入门教程1——UWP的前世今生 如上文所说的,布局面板根据可用的屏幕空间,指定界面元素的大小和位置.例如StackPanel 会水平或垂直排列界面元素.Grid 布局与CSS 中的表格 ...

  4. 【OpenCV新手教程之十七】OpenCV重映射 &amp; SURF特征点检測合辑

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/30974513 作者:毛星云(浅墨)  ...

  5. Web项目的发布新手教程

    ASP.NET服务器发布新手教程 ——本文仅赠予第一次做Web项目,需要发布的新手们,转载的请注明出处. 首先我们说一下我们的需要的一个环境.我使用的是Visual Studio 2010,版本.NE ...

  6. APP设计尺寸规范大全,APP界面设计新手教程【官方版】(转)

    正值25学堂一周年之际,同时站长和APP设计同仁们在群里(APP界面设计 UI设计交流群,APP界面设计⑥群 APPUI设计③群58946771 APP设计资源⑤群 386032923欢迎大家加入交流 ...

  7. ROS探索总结(三)——ROS新手教程【转】

    转自:http://blog.csdn.net/hcx25909/article/details/8811313 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一ROS的 ...

  8. 新手教程之使用Xib自定义UITableViewCell

    新手教程之使用Xib自定义UITableViewCell 前言 首先:什么是UITableView?看图 其次:什么是cell? 然后:为什么要自定cell,UITableView不是自带的有cell ...

  9. MATLAB新手教程

    MATLAB新手教程   .MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,仅仅需将运算式直接打入提示号(>>)之後,并按入Enter键就可以.比如 ...

随机推荐

  1. 測试password强度

    <html> <!--激情在最后面.请看最后面红色字 这是是个计算password强度的实例 网上有非常多这种样例 只是呢,都不怎么好 这是我写的一个完整的效果,能够通用, new一 ...

  2. es64 const

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. jquery15 on() trigger() : 事件操作的相关方法

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  4. 网络最大流算法—Dinic算法及优化

    前置知识 网络最大流入门 前言 Dinic在信息学奥赛中是一种最常用的求网络最大流的算法. 它凭借着思路直观,代码难度小,性能优越等优势,深受广大oier青睐 思想 $Dinic$算法属于增广路算法. ...

  5. 【深入篇】Andorid中常用的控件及属性

    TextView  android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/al ...

  6. VMwarep挂载镜像及配置本地Yum源

    1.挂载镜像: *. 通过mount命令         linux mount挂载设备(u盘,光盘,iso等 )使用说明 *.  通过VMware的控制页面手工挂载 1.1    打开Vmware软 ...

  7. 国内搜索大哥iOS面试题

    每一次面试之后都会对问到的面试题进行总结. 这篇总结的是我面试某大型搜索公司的iOS面试题.一面(15min)+二面(30min).并拿到实习offer.当然在今天这个特殊的节日,祝大家新年快乐.希望 ...

  8. JQuery之为某个div加入行样式

    JQuery都是以$符号开头的.当然能够用jQuery取代$符号,他们是恒等的,同一时候也是相等的.()事实上就是一个方法,里面能够传递匿名函数等,选取某个div时,如id为div1则用$('#div ...

  9. 制作U盘启动盘将Ubuntu 12.04升级为14.04的方法

    1 介绍 在周六的下午,我决定想高速浏览一下书籍[1].看看这个关于Ubuntu的圣经到底在讲什么东东. 感觉讲的不错,当我看到介绍文件标记语言-TeX和LaTeX的时候,该书作者推荐在Ubuntu上 ...

  10. 測试CPU支持指令集AVX,AVX2,SSE情况的代码【VS2010调试通过】

    完整代码例如以下所看到的 http://download.csdn.net/detail/vbskj/7723827 本人的測试结果 watermark/2/text/aHR0cDovL2Jsb2cu ...