在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

微软开源 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:003413
用户头像

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

关注

评论 1 条评论

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

“企业创新新引擎”数据库专项赋能会,让云原生技术普惠千行百业!

华为云开发者联盟

数据库 华为云 华为云开发者联盟 企业号2024年4月PK榜 华为云HCDG

以数字守护汉字!天翼云TeleDB数据库获GB 18030最高级别认证!

新消费日报

记一次ElasticSearch线上异常排查

李爽

elasticsearch

MySQL 进阶指南:优化查询性能与事务管理

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

测试

Databend 数据汇聚平台的建设与挑战

Databend

借助淘宝评论 API,商家轻松掌握市场动态与商机

tbapi

淘宝商品评论接口 淘宝评论API接口

Footprint Analytics 与 GalaChain 达成战略合作

Footprint Analytics

#区块链 Web3 Games Layer 1 GalaChain

软件兼容性定义以及作用简单讲解-行云管家

行云管家

软件 信创 兼容性 兼容适配 兼容

Stable diffusion中这些重要的参数你一定要会用

程序那些事

人工智能 程序那些事 openai AIGC

比较关系型与非关系型数据库:选择最适合你的数据存储方案

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

测试

Redis、MongoDB、Neo4j:探索不同的非关系型数据库世界

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

测试

友盟+|如何通过阿里云Flink+Paimon实现流式湖仓落地方案

Apache Flink

大数据 flink 友盟

揭秘Appium滑动屏幕技巧:实现用户仿真动作的多重方式!

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

测试

linux shell 脚本调试技巧

天翼云开发者社区

云计算 Linux 脚本调试

Web3.0去中心化代币流动性质押项目挖矿系统开发详细指南

系统开发咨询1357O98O718

Web3.0交易所dapp代币质押算力挖矿系统开发详细指南

系统开发咨询1357O98O718

OpenAI内部最受欢迎的10个GPTs推荐!建议收藏!

蓉蓉

openai ChatGPT GPT-4

API 开发的后盾:平台工程提供强力动态支持

SEAL安全

运维 云原生 API 平台工程

【一文读懂】DevOps、DataOps与MLOps:支撑企业高效运维的三驾马车

数造万象

大数据 数字化 DataOps #运维

Docker run 命令学习—Docker从入门到精通

秃头小帅oi

前端项目性能优化方案有哪些

天翼云开发者社区

云计算 性能优化 前端

探索 MongoDB 与 Neo4j 数据库的差异与应用场景

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

测试

查看游戏服务器IP地址的五种绝招,让你游戏无往不利

一只扑棱蛾子

游戏服务器

揭秘Appium滑动屏幕技巧:实现用户仿真动作的多种方式!

测试人

软件测试 自动化测试 测试开发 appium

如何优雅地Spring事务编程

Java随想录

Java spring 事务

Redis:快速、灵活的内存数据库应用实践

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

测试

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