写点什么

微软推出 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:431917
用户头像

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

关注

评论

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

深度探索名企项目开发:揭秘经典开发流程与测试策略

测吧(北京)科技有限公司

测试

Rust 解码 Protobuf 数据比 Go 慢五倍?记一次性能调优之旅

Greptime 格睿科技

Go rust 性能 序列化 企业号 4 月 PK 榜

AI投研分析,模块化赛道可能会出现新的头部公链

股市老人

AI投研分析,模块化赛道可能会出现新的头部公链

股市老人

Linux设备全览:从字符到块,揭秘每种设备的秘密

GousterCloud

Linux Kenel 设备

Linux设备深探:桥接硬件与软件的秘密通道

GousterCloud

Linux Kenel 设备 设备模型

探秘Linux进程与线程:多进程与多线程的奥秘及实战场景

测吧(北京)科技有限公司

测试

精通Linux性能优化:掌握CPU、内存、网络和IO性能调优的技巧与工具

测吧(北京)科技有限公司

测试

ERC314协议代币开发及合约开发详解

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

精通测试规划:打造完备的测试计划与总结报告

测吧(北京)科技有限公司

测试

解析名企测试流程:从项目立项到产品上线的完整指南

测吧(北京)科技有限公司

测试

Linux IO:打开数据之窗的魔法

GousterCloud

io Linux Kenel

Linux IO的奥秘:深入探索数据流动的魔法

GousterCloud

io Linux Kenel

Linux内核探幽:深入浅出IO模型

GousterCloud

io Linux Kenel

揭秘Linux进程通讯:解决死锁难题的方法论

测吧(北京)科技有限公司

测试

淘宝商品评论API:连接消费者与商家的桥梁,提升购物体验新途径

技术冰糖葫芦

API 文档

云原生数据库下一站:像 MySQL 一样流行,让更多人受益于新技术的发展

百度Geek说

云计算 云原生数据库

高效管理测试资源:工具化管理测试用例与Bug漏洞

测吧(北京)科技有限公司

测试

基于HIL+RCP的三相整流电路实验

芯动大师

电压 电源 三相整流

关于程序员如何解决35岁焦虑的一点个人思考

孔令飞

35岁焦虑

深入Linux设备模型:开发者指南

GousterCloud

Linux Kenel 设备

企业架构设计原则之品质均衡性(一)

凌晞

企业架构 架构设计 架构设计原则

性能测试中的唯一标识问题研究

FunTester

测试管理实战:优化测试流程,提升项目质量与效率

测吧(北京)科技有限公司

测试

C++ Break、Continue 和 数组操作详解

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

从零开始编写的下一代逻辑编排引擎 NopTaskFlow

canonical

低代码 工作流引擎 逻辑编排 协程原理 行为树

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