写点什么

微软推出 Common XAML UI

  • 2014-04-11
  • 本文字数:1005 字

    阅读完需:约 3 分钟

在.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

2014-04-11 21:431849
用户头像

发布了 256 篇内容, 共 88.7 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

JSON转Excel

入门小站

工具分享

Java常用的几个Json库,性能强势对比!

xcbeyond

性能优化 6月日更

微服务的由来

卢卡多多

微服务 6月日更

JAVA面向对象(六)--类和对象

加百利

Java 6月日更

自然语言处理技术

Qien Z.

nlp 6月日更

Kubernetes手记(16)- 网络通信

雪雷

6月日更

解读SpringBoot和SpringMVC中配置类的@Impot等导入是如何解析的

赵镇

spring

【Vue2.x 源码学习】第十八篇 - 根据 render 函数,生成 vnode

Brave

源码 vue2 6月日更

简单实现springmvc中的请求处理

赵镇

springmvc

架构实战营 - 模块 6- 作业

泄矢的呼啦圈

架构实战营

Bzz矿机分币APP,深圳云矿机系统开发

我曾与纪伯伦的对话

卢卡多多

6月日更

【21-11】PowerShell文件 IO 操作

耳东@Erdong

PowerShell 6月日更

新视界 | 透过鸿蒙OS看手机操作系统

架构精进之路

操作系统 HarmonyOS 6月日更

项目经理如何才能不背锅

escray

学习 极客时间 朱赟的技术管理课 6月日更

软件技术从1996年以后就停滞不前了!?难道软件技术难返“春天”了么?

三掌柜

试用期 签约计划 人气作者 TOP10

架构实战营模块6作业

Vic

架构实战营

ServeMux详解

Rayjun

HTTP Go 语言

网络攻防学习笔记 Day48

穿过生命散发芬芳

网络攻防 6月日更

Linux之cd命令

入门小站

Linux

「SQL数据分析系列」7. 数据生成、转换以及操作

Databri_AI

数据库 sql

Nike上货提醒:监控到商品尺码SKU

木头

Nike监控 上货监控 SKU监控

JavaScript 学习(五)

空城机

JavaScript 大前端 6月日更

【Flutter 专题】100 何为 Flutter Widgets ?

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

深入浅出 Ajax 的核心原理

悟空聊架构

ajax 架构 大前端 6月日更 悟空聊架构

Kubernetes手记(15)- dashboard

雪雷

k8s 6月日更

科技进步道阻且长,仍未来可期

架构精进之路

科技 6月日更

【架构实战营】第 6 模块作业

swordman

架构实战营

第六次作业

Geek_9cf7b5

☕【JVM性能调优】「CMS垃圾回收器」调优化方案

洛神灬殇

CMS GC jvm调优 6月日更

上云赋智的企业们,也许是这届618的最大赢家

脑极体

微软推出Common XAML UI_语言 & 开发_Jonathan Allen_InfoQ精选文章