写点什么

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

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

关注

评论 1 条评论

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

Flutter StatefulBuilder 示例

坚果

5月月更

ffmpeg封装格式转换

Loken

音视频 5月月更

【C 语言】指针 Three 之 [赋值语句的方法、指针变量的大小、上述总结、 * 和 & 认识、对解引用(*)认识]

謓泽

5月月更

Wallys-AR9582 /2x2 MIMO /Industrial-grade/ 902-928Mhz

wallys-wifi6

设计模式之观察者模式

乌龟哥哥

5月月更

架构训练营第一次作业

地下地上

7件大事回顾加密史上最疯狂一周

CECBC

springboot启动失败的问题('hibernate.dialect' not set)

程序员欣宸

Java 5月月更

比特币跌破27000美元!币圈大佬损失惨重,最高身价缩水近9成

CECBC

有了这10个GitHub仓库,开发者如同buff加持

华为云开发者联盟

GitHub 开源 Web 软件开发

MAE自监督算法介绍和基于EasyCV的复现

阿里云大数据AI技术

深度学习 算法 自监督学习

你说写代码,最常用的3个设计模式是啥?

小傅哥

设计模式 小傅哥 架构设计 代码优化 设计原则

5.17电信日 | 融云积极消除数字鸿沟 助力打造数字化新基建

融云 RongCloud

Druid连接池源码阅读07

石小天

druid源码学习七

Nick

Apache Kafka 分层存储(Tiered Storage)技术解析

移动云大数据

kafka

融云 x Zervo:打造欧美 Z 世代社交的「主题幻想世界」

融云 RongCloud

FFmpeg安装

Loken

音视频

网站开发进阶(七十一):css伪元素::before和::after用法详解

No Silver Bullet

css3 5月月更 伪元素 伪类

听说你在写Python爬虫,你对浏览器的开发者工具了解多少?【多图预警】

梦想橡皮擦

5月月更

如何给 kitex 贡献单元测试

baiyutang

开源 字节跳动 微服务 5月月更 kitex

Go 语言入门很简单:AES加密和解密

宇宙之一粟

AES Go 语言 5月月更

架构实战营模块一作业

融冰

直播预告丨OpenHarmony标准系统多媒体子系统之视频解读

OpenHarmony开发者

OpenHarmony 多媒体

极狐GitLab yum/apt repo正式开放,更顺畅的极狐GitLab安装升级体验

极狐GitLab

极狐GitLab 安装源

WorkPlus IM即时通讯:快速集成、私有化部署、安全加密

BeeWorks

使用 nginx 配置项的好习惯

liuzhen007

nginx 5月月更

C语言打印程序行号、日期方便调试程序

DS小龙哥

5月月更

区块链有什么价值?

CECBC

揭秘华为云GaussDB(for Influx):数据直方图

华为云开发者联盟

数据库 华为云 GaussDB(for Influx) 数据直方图 直方图

苹果 AppStore 财年和账单那些趣事

37手游iOS技术运营团队

apple appstore App生态

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