QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

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

关注

评论

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

金融保险行业数字化创新实践:如何高效落地自主可控的企业级大数据平台

tapdata

大数据平台 数据集成 数据服务 实时数据集成 银行保险业数字化转型

【连载 06】自定义线程池(下)

FunTester

Anthropic 工程师关于提示词工程的深入探讨

亚马逊云科技 (Amazon Web Services)

向佐蹭热点卖货大赚,Java之父搞流量一年赚300万,程序员做自媒体的“设计模式”

陆通

汽车服务行业小程序一站式开发解决方案

V\TG【ch3nguang】

合约现货量化一键跟单交易软件开发

V\TG【ch3nguang】

深度解析京东API接口:jd.item_get如何高效获取商品详情与SKU

代码忍者

京东API接口 京东商品API

【YashanDB知识库】复合索引下in大量参数查询性能慢

YashanDB

数据库 yashandb

HarmonyOS Next-从应用开发到上架全流程解析

申公豹

harmoyos

Cyber Triage 3.13 发布,新增功能概览

sysin

数字取证

淘宝电商运营的小秘籍,看完血赚。

科普小能手

运营 淘宝 技巧 电商 运营干货

亚马逊API接口深度解析:如何高效获取商品详情与评论数据

代码忍者

亚马逊商品详情API 亚马逊API接口

不会编程,也可以搭建体育比分直播平台

熊猫比分大卫

体育赛况资讯直播app开发 体育直播网源码 体育动画直播

探索C#中Task与CancellationTokenSource的协同艺术

代码忍者

直播效果搭建的神兵利器、音乐制作的全能小将----Studio One

阿拉灯神丁

音频 编曲宿主 StudioOne 音乐制作软件 后期混音效果全套插件

淘宝天猫API接口深度解析:商品详情与关键词搜索商品的高效应用与实战代码

代码忍者

淘宝API接口 淘宝评论API

基于STM32F4单片机实现ROS机器人主板

芯动大师

机器人 stm32 ROS

《计算机组成及汇编语言原理》阅读笔记:p1-p8

codists

计算机组成及汇编语言原理

DeFi即将迎来大爆发:2025年金融变革的背后逻辑与机会

chainwiseweb3

DeFi质押挖矿 DeFi流动性挖矿 defi开发 defi金融开发 去中心化合约开发

不同价位的LED显示屏,都有什么差别?

Dylan

LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

阿里巴巴1688 API接口详解:商品详情与关键词搜索商品的高效应用与实现

代码忍者

1688API接口 关键词搜索1688API

2024-12-21:从魔法师身上吸取的最大能量。用go语言,在一个神秘的地牢里,有 n 名魔法师排成一列。每位魔法师都有一个能量属性,有的提供正能量,而有的则会消耗你的能量。 你被施加了一种诅咒,吸

福大大架构师每日一题

福大大架构师每日一题

原“明星级”自动驾驶创企「云骥智行」入局具身智能赛道,并完成产品首发!

机器人头条

自动驾驶 人形机器人 具身智能

微店API接口深度解析:如何高效获取商品详情micro.item_get及Python代码示例

代码忍者

微店API

【YashanDB知识库】YMP迁移过程中报错YAS-02143或YAS-02193

YashanDB

数据库 yashandb

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