BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

微软推出Common XAML UI

| 作者 Jonathan Allen 关注 524 他的粉丝 ,译者 马德奎 关注 0 他的粉丝 发布于 2014年4月12日. 估计阅读时间: 3 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

在.NET开发人员中间,一直有人抱怨基于XAML的不同用户界面种类太多。该问题开始于Silverlight,它有一套与WPF类似但不同的控件。Silverlight for Windows Phone增加了第三套,而XAML for WinRT则增加了第四套。

在4月2日的Build主题演讲中,我们听说微软最终已经开始了整合过程,推出了Common XAML UI。该UI框架基于XAML for WinRT,允许同样的UI代码在手机、平板电脑、台式电脑、最终在Xbox One上共享。

Common UI的基础是一个称为“共享项目”的新项目类型。这是Visual Studio的一个新概念,其工作方式与可移植类库有很大的不同。一个共享项目不能单独编译成DLL或EXE。相反,它会在构建时合并到一个或多个传统的项目类型中。传统项目的非正式名称为“项目头(project heads)”。

面板、按钮、文本框/按钮等核心基元在Windows和Windows Phone上将会有相同的行为。Hub、AppBar/CommandBar、日期/时间选择器、ListView、浮出控件和媒体等高级基元在两个平台上将会有相同的API,但行为不同。Ads SDK在两个平台上也有共用的API签名,但也是行为不同。

需要注意的是,部分功能会悄无声息地失效。例如,如果在CommandBar中有太多的按钮,那么Windows Phone将只渲染前面的几个。

虽然许多控件可以根据屏幕尺寸的不同伸缩,但有时候,开发人员需要针对某些设备定制控件的行为。一种实现方式是使用特定于平台的自定义控件。共享控件可以引用这些特定于平台的自定义控件,只要控件在每个项目头里有正确的名称。

提高代码重用的另一种选择是在后台代码中使用条件编译和#if def。从这个意义上讲,它就像在项目之间使用软链接共享源代码文件的经典方式。

资源文件提供了定制用户体验的第三种方式,用法与本地使用相同。以命令栏按钮为例,它们如何能按照预期在手机上小写,在台式电脑上首字母大写。

虽然大部分API现在可以共享,但有些特性并不是在所有平台都可用。最值得注意的有:

仅与于Windows平台的API

  • SearchBox
  • Settings Flyout

仅用于Windows Phone平台的API

  • Pivot
  • AutoSuggestBox
  • ContentDialog
  • Maps
  • System Chrome
  • Progress area, in-call UI

Windows和Windows Phone的后退按钮行为不同,因此可能需要围绕它们做些自定义工作。另外,有必要针对文件选择器、共享和设置编写特定于平台的代码。

Visual Studio 2013 Update 2的所有版本都提供了Common XAML和Universal Apps。

查看英文原文:Introducing Common XAML UI

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT