写点什么

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

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

关注

评论 1 条评论

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

产品设计的几个原则

石云升

产品思维 产品思考 9月日更

linux系列之:告诉他,他根本不懂kill

程序那些事

Linux 命令 程序那些事 kill

还重构?就你那代码只能铲了重写!

小傅哥

Java 小傅哥 代码优化 代码重构 开发标准

Python——绑定与方法调用

在即

9月日更

“妈我不想去上课!”“不行你是老师!”

梦想橡皮擦

9月日更

图遍历算法

6979阿强

图遍历 GraphScope

GaussDB(for MySQL)如何快速创建索引?华为云数据库资深架构师为您揭秘

华为云开发者联盟

数据库 算法 索引 GaussDB(for MySQL) MySQL索引

hutool如何实现数据导出到Excel

卢卡多多

hutool 数据导出 9月日更

深入剖析 | XLSX海量数据复杂填充解决方案

九叔(高翔龙)

中间件 EasyExcel Apache POI java核心

聊一聊芯片上电复位和掉电检测

不脱发的程序猿

嵌入式 硬件开发 芯片上电 上电复位 掉电检测

【LeetCode】寻找峰值Java题解

Albert

算法 LeetCode 9月日更

雪花算法,什么情况下发生 ID 冲突?

马丁玩编程

Java lua redis 雪花算法

乘着汽车智能化的浪潮,“汽车人”的职业方向选择(二)

SOA开发者

程序员 软件 汽车 职业发展

MySQL事务学习笔记

风翱

MySQL 9月日更

Supervisor 基础配置

耳东@Erdong

Supervisor 9月日更

图计算的应用

6979阿强

17. 关于超人工智能来临,霍金的忧虑

Databri_AI

人工智能

命令行如何执行jar包里面的方法

FunTester

性能测试 反射 接口测试 测试框架 FunTester

针对各种指标数据如何选择合适的算法?

云智慧AIOps社区

技术 算法 数据 智能运维 指标

在线JSON转sarcastic工具

入门小站

工具

架构实战营模块三作业

michael

#架构实战营

Sentinel 常用流控算法

Z

sentinel 流控算法 服务监控 服务降级 流控

【Flutter 专题】46 图解新的状态管理 Provider (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

手撸二叉树之翻转二叉树

HelloWorld杰少

9月日更

DBA:介里有你没有用过的“CHUAN”新社区版本Redis6.0

华为云开发者联盟

redis 开源 多线程 Redis 6.0 华为云DCS

怎样才能写好前端页面,css书写顺序和布局真的有那么重要吗

你好bk

CSS html 大前端 结构

JavaScript 进阶(下)

Augus

JavaScript 9月日更

linux之iconv命令

入门小站

Linux

网络攻防学习笔记 Day136

穿过生命散发芬芳

vpn 9月日更 恶意代码

枚举在 Golang 中的实现

baiyutang

Go 语言 9月日更

WEB全屏API简介及示例

devpoint

web api 9月日更

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