写点什么

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

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

关注

评论 1 条评论

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

一文掌握MySQL中的二进制日志,MySQL 优化学习第10天

梦想橡皮擦

5月月更

MPEG-TS封装格式

Loken

音视频 5月月更

在线文本去重统计工具

入门小站

工具

在线TSV转XML工具

入门小站

工具

Go Web 编程入门:快速了解Fiber框架

宇宙之一粟

Go 语言 Fiber 5月月更

设计模式之代理模式

乌龟哥哥

5月月更

15-操作DOM对象

爱好编程进阶

Java 程序员 后端开发

Maven 依赖管理与生命周期

Emperor_LawD

maven 5月月更

Dart 2.17发布,新特性速递

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

AI简报:图像超分模型RCAN+SRResNet

AIWeker

人工智能 深度学习 5月月更 超分

从AI数羊到“相牛”:人工智能应用如何低门槛化?

脑极体

模块九作业 - 设计电商秒杀系统

smile

架构实战营

druid 源码阅读 5——讨论下druid为什么不用AtomicLong

张大彪

Druid连接池源码阅读05

石小天

有了测试组,为什么还要QA?

高山

测试 QA CMMI

架构训练营 毕业总结

AragornYang

架构训练营 架构实战营

druid 源码阅读(五)初始化连接池总结

爱晒太阳的大白

5月月更

数据库连接池 -Druid 源码学习(五)

wjchenge

Druid 数据库连接池

K8S 准入控制器有哪些是默认的?

baiyutang

Docker Kubernetes 云原生 k8s 5月月更

Java 集合看这一篇就够了

爱好编程进阶

程序员 后端开发

SpringWebFlux中WebClient怎么打印日志?

编号94530

spring 日志 WebFlux WebClient

k8s client-go源码分析 informer源码分析(3)-Reflector源码分析

良凯尔

容器 云原生 Kubernetes 集群 Client-go

网站开发进阶(六十四)CSS 属性选择器讲解

No Silver Bullet

CSS 属性选择器 5月月更

ElasticSearch 概述

爱好编程进阶

Java 程序员 后端开发

IntelliJ IDEA如何clean或者install Maven项目

爱好编程进阶

程序员 后端开发

5分钟学会 Vim 分屏操作方方面面

爱好编程进阶

Java 程序员 后端开发

学生管理系统(3)

5月月更

Nacos源码系列—订阅机制的前因后果(上)

牧小农

源码 nacos

架构实战营 - 毕业总结

smile

架构实战营

架构实战营模块5作业

天琪实刚亮

架构训练营毕业设计:电商秒杀系统

AragornYang

架构训练营 架构实战营

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