写点什么

微软开源 XAML Behaviors

  • 2016-02-24
  • 本文字数:985 字

    阅读完需:约 3 分钟

长期以来,XAML Behaviors 都是 WPF/Silverlight 开发中一个令人懊恼的部分。尽管用处极大,但该库的分发和维护方法有些奇怪。随着 XAML Behaviors 开源公告的发布以及相应 NuGet 包的创建,该问题最终得到了解决。

XAML Behaviors 非常重要,因为它们提供了一种方法,让开发人员能够以一种简洁、可重复的方式轻松地向 UI 对象添加功能。他们无需创建控件的子类或重复编写逻辑代码,只要简单地增加一个 XAML 代码片段。下面的例子摘自 Anoop Madhusudanan 题为“ Silverlight 和 WPF 中的 Behaviors、Triggers 和 Actions 让事情变得简单”的博文:

诸如 MouseDragElementBehavior 这样的行为有 OnAttached 和 OnDetaching 方法。这些方法主要是用于添加事件处理函数,虽然它们也可以以一种使用常规 XAML 语法无法实现的方式修改属性。

XAML Behaviors 的应用通常要视具体情况而定。不过,如果将行为与附属属性配对,就可以借助样式更广泛地应用它们。

所有这些便利都是有代价的。XAML Behaviors 是作为Blend System.Windows.Interactivity 库的一部分提供。由于是在.NET 之外单独提供,所以常常很难获得它。即使在大部分库在NuGet 上提供了之后,开发人员常常还是不得不求助于由好心的开发人员所提供的非官方程序包,其中(有望)包含该库的真实版本。即使到现在,也很难弄清楚哪个才是官方支持的版本。

随着XAML Behaviors for UWP 发布,所有这一切正在发生变化。最重要的是, XAML Behaviors 现在开源了,其库托管在 GitHub 上。官方 NuGet 程序包包括 UWP原生托管版本。

贡献模型

Jon Chu 写道:

一个由微软最有价值专家(MVP)领导者组成的委员会将会评估贡献,以确保项目的质量和发展方向。该项目委员会将会接收和评论社区提交的 pull request。

随着开源项目的发展,会有更多的贡献者为 Behaviors 作贡献,我们计划调整项目结构,向为项目增添最大价值的贡献者授权。不管是通过代码、文档,还是其他改进 Behaviors 的方式,我们的目标是让社区对 Behaviors 有更大的控制权,并授权用户构建和添加他们最希望看到的特性。

WPF 支持

有关 WPF 支持方面,Jon Chu 写道:

截至目前,XAML Behaviors 还没有针对 WPF 的开源版本。不过,我们愿意继续发展 Behaviors。针对 WPF 等的跨平台 Behaviors 当然在路线图上,如果社区对此感兴趣,我们将来当然会带来新的 Behaviors。

查看英文原文: Microsoft Open Sources XAML Behaviors

2016-02-24 18:003259
用户头像

发布了 1008 篇内容, 共 433.7 次阅读, 收获喜欢 346 次。

关注

评论 1 条评论

发布
用户头像
果然Unity走在GUI开发的最前沿,强烈建议Vue3抄作业,把Behaviour添加到Composition API中。
2021-04-01 12:21
回复
没有更多了
发现更多内容

开放原子开源大赛—基于OpenHarmony的团结引擎应用开发赛正式启动!

OpenHarmony开发者

网络安全等级测评师考试培训可以参考哪些资料?

行云管家

等保 等级保护 等保测评师

万字带你了解ChatGLM

华为云开发者联盟

人工智能 华为云 大模型 华为云开发者联盟

解读 Amazon Q | 用 AI 聊天机器人连接你与未来的无限可能

亚马逊云科技 (Amazon Web Services)

以守为攻,零信任安全防护能力的新范式

权说安全

零信任

代码精简执行过程

京东科技开发者

立即注册 | 线上讲座:借助 NGINX Plus 优化物联网数据传输和应用安全

NGINX开源社区

TLS 物联网 IoT mqtt NGINX PLUS

如何定期清理数据库中的无效数据?

NineData

数据清理 数据归档 NineData 无效数据 优化数据库

npm是如何处理多版本依赖的?

伤感汤姆布利柏

「飞桨星河社区创作者激励计划」全新上线!丰富权益,等你领取~

飞桨PaddlePaddle

百度 开发者社区 百度飞桨 星河社区 飞桨星河社区

软件测试学习笔记丨服务端问题定位常用linux指令集合

测试人

Linux 软件测试

Tapjoy from Unity 推出“每日奖励”积分墙广告,以增强用户粘性并提升投放 ROAS

极客天地

等保测评与信息安全管理体系认证的区别

行云管家

等保 等级保护 等保测评

超越基础设施:深度探讨平台工程的关键支柱

SEAL安全

架构 基础设施 平台工程

一分钟了解JAVA语言

小齐写代码

第42期 | GPTSecurity周报

云起无垠

软件测试岗位我是如何拿到5个offer的一些经验分享(附面试题)

测试人

软件测试 面试题

数据“隐领”未来!【隐私计算实训营】限时免费招募!

隐语SecretFlow

数据分析 数据安全 隐私计算

利用阿里巴巴1688商品详情API:实现电商数据的快速整合

技术冰糖葫芦

API 接口 API 策略

【一文读懂】基于Havenask向量检索+大模型,构建可靠的智能问答服务

阿里技术

向量检索 LLM 智能问答 Havenask 召回搜索引擎

20个Python random模块的代码示例

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟

人工智能(AI)+、+了什么?互联网+又是什么?

天津汇柏科技有限公司

互联网+ #人工智能

就业寒冬,最终拿到5个offer的一些经验分享

霍格沃兹测试开发学社

小红书笔记详情API:让内容创造更高效含代码

技术冰糖葫芦

API Explorer API 接口 API 策略

提升地理空间分析效率,火山引擎ByteHouse上线GIS能力

字节跳动数据平台

数据库 大数据

为了跳槽或提升自己,你会先学习哪一门编程语言?

小魏写代码

面试八股文,自有其道理

老张

面试 专业能力

微软开源XAML Behaviors_.NET_Jonathan Allen_InfoQ精选文章