AICon日程100%就绪,9折倒计时最后一周 了解详情
写点什么

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

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

关注

评论

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

限流与Guava RateLimiter原理解析

千珏

Java 微服务 限流算法 Guava 令牌桶

CampusBulider(模模搭)学习笔记5:创建自定义建筑

ThingJS数字孪生引擎

大前端 可视化 3D 3D可视化 数字孪生

MapReduce排序以及序列化

五分钟学大数据

大数据 hadoop mapreduce

Nginx负载均衡配置误区

运维研习社

nginx 负载均衡 5月日更

嵌入式程序调用函数的内部过程和机制

不脱发的程序猿

单片机 嵌入式程序 嵌入式设计

堪称完美!淘宝内部百亿级Java高并发系统架构设计PDF手册分享

Java架构追梦

Java 架构 高并发 淘宝网 亿级架构设计

官宣:恭喜 ChaosBlade 项目进入 CNCF Sandbox

阿里巴巴云原生

容器 云原生 k8s 监控 Go 语言

Amazon Route 53 Resolver 落地中国区,轻松玩转私有域名互访不是梦!| 新服务上线

亚马逊云科技 (Amazon Web Services)

STM32电源框图解析(VDD、VSS、VDDA、VSSA、VREF+、VREF-、VBAT等的区别)

不脱发的程序猿

嵌入式 stm32 单片机 电源框图解析

2021年5月国产数据库排行榜:“华为高斯模式”取得成功,阿里OPA持续攀升

墨天轮

数据库 dba tdsql TiDB Gauss DB

如何高效地存储与检索大规模的图谱数据?

华为云开发者联盟

存储 知识图谱 检索 图结构 表结构

Amazon Glue 版本 2.0 将作业启动时间缩短了 10 倍,现已全面开放!

亚马逊云科技 (Amazon Web Services)

云图说|不要小看不起眼的日志,“小日志,大作用”

华为云开发者联盟

运维 日志 云日志服务 安全监控审计

数据采集之js自定义采集

大数据技术指南

大数据

为啥你写的代码总是这么复杂?

华为云开发者联盟

软件 代码 代码注释 bug 复杂度

我崩溃了!BTAJ面试有关散列(哈希)表的面试题详解,电子版已问世

欢喜学安卓

android 程序员 面试 移动开发

源码解析之Seata项目中的分布式ID生成算法

Coder的技术之路

分布式 分布式ID

“云演唱会”也有仪式感!能检票、可转赠,爱奇艺“云票”如何重构线上购票逻辑

爱奇艺技术产品团队

怎么进大厂?166位Java工程师的大厂面试经验分享

北游学Java

Java 面试 大厂

再次荣获最受观众喜爱奖

Serverless Devs

阿里云 云原生 cncf #Serverless

Spring Cloud Bus 消息总线介绍

阿里巴巴云原生

Java 微服务 云原生 中间件 数据格式

如何做一场高质量的分享

阿里巴巴云原生

深度学习 开发者 云原生 分享

anyRTC 六周年 打造全网最低音视频价格

anyRTC开发者

音视频 WebRTC RTC sdk

更灵活的边缘云原生运维:OpenYurt 单元化部署新增 Patch 特性

阿里巴巴云原生

容器 运维 云原生 中间件 边缘计算

论好文章和烂文章

阿里巴巴云原生

程序员 开发者 云原生 写作技巧 成长与思考

华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)

华为云开发者联盟

数据仓库 华为云 数据迁移 GaussDB(for Redis) PB级数据库

iMazing比iTunes好用在哪些地方

懒得勤快

揭秘 Amazon Go 无人商店是如何炼成的!

亚马逊云科技 (Amazon Web Services)

HuskyLens人工智能摄像头

不脱发的程序猿

人工智能 智能硬件 AIOT HuskyLens 人工智能摄像头

智慧党建三维云展厅可视化

一只数据鲸鱼

数据可视化 智慧党建 三维可视化

Linux C/C++ 学习路线总结!助我拿下腾讯offer

赖猫

后台开发 C/C++ Linux服务器开发

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