HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

来自开发者的点赞!网易云信揽获三大技术奖项

网易云信

资讯

微信业务架构图&学生管理系统毕设架构

blazar

「架构实战营」

征文投稿丨使用轻量应用服务器搭建扫码测试项目

阿里云弹性计算

阿里云 轻量应用 征文投稿

技术,让春节团圆再无距离 | 全息投影

气气

架构实战营第4期第5课作业:微博评论计算架构分析

owl

架构实战营

模块五作业

黄秀明

「架构实战营」

第五周作业

cqyanbo

鸿蒙-webview的使用和JS交互(附源码)【鸿蒙开发 03】

坚果

鸿蒙开发 1月月更

Java UI框架初探和路由跳转实现【鸿蒙开发05】

坚果

鸿蒙开发 1月月更

微博评论高性能高可用计算架构

糖糖学编程

架构实战营

微信架构设计和学生管理系统

刘洋

#架构实战营

架构实战营 - 模块 5 课后作业

tony

Three.js入门: 构建一个立方体

devpoint

WebGL three.js 1月月更

有道技术团队入选 2021思否中国技术先锋年度评选两项榜单

有道技术团队

获奖

markdown-it 插件如何写(一)

冴羽

前端 markdown 博客 vuepress markdown-it

20 Prometheus之Grafana简述

穿过生命散发芬芳

Grafana Prometheus 1月月更

【架构实战营】模块五:命题作业

wgl

「架构实战营」

一个cpp协程库的前世今生(二十二)协程偷取

SkyFire

c++ cocpp

一个后端开发到鸿蒙开发的简单尝试

宇宙之一粟

鸿蒙开发 1月月更

如何选择项目管理软件?

爱吃小舅的鱼

Hoo虎符研究院|投资前沿——过去一周顶级投资动向(第二期)

区块链前沿News

Hoo 虎符交易所 虎符研究院 区块链投资

有了小程序还要不要做app?

石云升

小程序 1月月更

浅析安全反序列化漏洞

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

架构实战营4期-模块5作业

木几丶

「架构实战营」

🏆【Alibaba中间件技术系列】「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)

洛神灬殇

nacos 配置中心 Alibaba SpringCloud Alibaba 1月日更

架构实战营模块五作业

zhongwy

架构实战营

初探鸿蒙,你学废了吗 【鸿蒙开发 04】

坚果

鸿蒙开发 1月月更

微博评论高性能高可用方案设计

AUV

「架构实战营」

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

Pyel

「架构实战营」

阿拉丁2021年度小程序白皮书发布,凡泰极客 FinClip 技术再度入选

FinClip

小程序 白皮书 finclip

模块5作业

novoer

#架构实战营

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