Windows 平台 (UWP)应用设计

Make Your Apps Cooperate with Cross-App Communication :  https://rewards.msdn.microsoft.com/Challenge/7b4684c7-e12c-4894-bba6-546071c3103b

Using cross-app communication to make apps work together (10 by 10) :  http://blogs.windows.com/buildingapps/2015/09/22/using-cross-app-communication-to-make-apps-work-together-10-by-10/

如何针对结果启动应用 https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/dn997827.aspx

自动启动文件和 URI 关联 (XAML): https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/hh779673.aspx

 

Make your app look great on any size screen or window (10 by 10) : http://blogs.windows.com/buildingapps/2015/09/01/make-your-app-look-great-on-any-size-screen-or-window-10-by-10/

Dynamically detecting features with API contracts (10 by 10) : http://blogs.windows.com/buildingapps/2015/09/15/dynamically-detecting-features-with-api-contracts-10-by-10/

面向设计人员的通用 Windows 平台 (UWP) 应用简介: https://msdn.microsoft.com/zh-cn/library/windows/apps/dn958439.aspx

规划你的通用 Windows 平台 (UWP) 应用 : https://msdn.microsoft.com/zh-cn/library/windows/apps/dn958435.aspx

通用 Windows 平台 (UWP) 应用的指南 : https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465424.aspx

UWP开发框架的新特性: http://www.cnblogs.com/ms-uap/archive/2015/05/11/4485174.html

新加入的通用控件

在UWP中,由于没有平台区别,几乎所有控件都成为跨平台控件了,而非UAP下不同平台的使用限制。其中值得注意的一些新控件有:

    • Pivot:是的,就是大家耳熟能详的Pivot,现在可以在所有平台使用了。区别在于在大屏环境下其行为、展现方式会有略微不同。
    • AutoSuggestBox:有自动补齐功能的搜索框,将替代传统的SearchBox。
    • UniversalMaps:跨平台的地图控件,再也不用为不同平台的定位应用设计不同的地图展示逻辑了。
    • SplitView: 提供可伸缩的导航栏用于导航容器中的页面,作为一个全新的控件,其具有极高的页面适配性,利用下文介绍的自适配技术可以轻松地让其适配复杂的页面。
    • InkCanvas:新封装的控件以支持用户笔记,其应用场景还是很多的,可以省去在这些情况下开发者的不少精力了,毕竟实现一个用户友好的图画版并不轻松。

自适配辅助

由于UWP将面对复杂多变的应用分辨率,曾经为一些固定分辨率设计页面的日子一去不复返。从这点来说,UWP也更靠近网页设计一些。可是对于html,我们有relative、有流式布局;XAML呢,总不能老是把自适配实现在csharp代码里吧?别急,XAML足够做绝大部分的工作。且看:

VisualStateManager

这是XAML的一个元素,其功能,一言以蔽之,就是管理在不同条件下页面各元素的属性以及其切换时过渡方式。

RelativePanel

可能有读者会疑惑了:即使有很强大、可自定义的Trigger,我能做的也不就只有定制一些属性么?如果我想根据具体情况调节位置、尺寸,该怎么办,还是只能诉诸代码么?当然不是:RelativePanel将提供你想要的: 有想过html的流式布局么,有考虑过float一类的css属性在xaml中实现么?RelativePanel正是支持他们的容器。

已经进行过设备适配的控件们

对于大家日常使用的控件,在不同设备上运行时也有不同的效果,它们是微软专门设计以适配不同操控类型、屏幕大小设备,从这一点来说,可以省去页面设计者不小功夫。如:

  • MenuFlyout控件在鼠标激发和手指激发时的菜单间距并不相同,以给两种操控方式提供最好的用户体验。
  • Pivot在不同尺寸屏幕下的选定标签位置有所区别,以方便单手/双手触控。

全新的绑定方式:编译时绑定

新的XAML提供了一种不一样的绑定方式:编译时绑定({x:bind})。其绑定关系将会在编译时得到检查,运行时仅存在他们之间的数据依赖。正因如此,这种绑定在运行时的效率得到了极大的提升。从Build展示的数据来看,其绑定效率、属性修改响应效率以及资源节省度都有了数倍提升。

界面响应速度全面提升

既然要做UWP了,如果效率本身不够过硬,怎么适应各种多变的部署平台?微软在这方面也是煞费苦心,大幅提升其运行效率和稳定度,以求用UWP替代传统的pe文件作为微软产品主力军。可以在Build展示里窥见UWP风格的Office,可见未来的Office甚至VS都可能是UWP的囊中之物。那么究竟有什么改动呢?

  • XAML元素的惰性加载特性:想必大家都听说过一些函数式编程语言中惰性求值的概念,这里这种概念移植到了界面渲染上。惰性载入可以保证更快的程序启动时间和用户在一般情况下操作的响应速度。
  • 文字渲染效率提升:UWP渲染文字的效率提升了50%
  • 绑定加速:上文已经讲过,此处并不赘述。
  • 新增加的Visual Layer访问API将允许开发者碰触一些更底层的渲染机制,从而在实现动画、变换等操作时拥有更高的效率。
原文地址:https://www.cnblogs.com/qianblue/p/4846507.html