写点什么

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

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

关注

评论 1 条评论

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

java 程序启动后cpu高怎么办?

摸鱼编程

JVM JIT jfr pgo

如何使用Prestashop三步轻松搭建自己的电商网站

平平无奇爱好科技

如何通过华为云云耀云服务器L实例自建企业Nextcloud云存储

平平无奇爱好科技

自动化测试之模拟器控制

霍格沃兹测试开发学社

Postman做 接口自动化测试

霍格沃兹测试开发学社

PoseiSwap 更新质押系统,并将在 8 月18 日开启“Trident ”快照

BlockChain先知

App自动化控件定位

霍格沃兹测试开发学社

Docker 容器技术与常用命令

霍格沃兹测试开发学社

从新学习String和StringBuilder,让面试官虎躯一震

摸鱼编程

Java 面试 string StringBuilder

中小企业预算有限,如何使用Odoo构建企业ERP?

平平无奇爱好科技

计算机网络知识,一文搞定

霍格沃兹测试开发学社

Appium WebView 技术原理

霍格沃兹测试开发学社

数据库变革:HashData云数仓实现事务级实时性

酷克数据HashData

小灯塔系列-中小企业数字化转型系列研究——MICE测评报告

向量智库

gitlab 服务端 hook, 拦截糟糕的提交到仓库

霍格沃兹测试开发学社

java程序员应该知道的k8s容器资源申请攻略

摸鱼编程

Java 容器 k8s JVM

LCR 089. 打家劫舍

红袖添香

动态规划 力扣 打家劫舍

Andriod微信小程序自动化测试

霍格沃兹测试开发学社

web自动化解决文件上传和弹框

霍格沃兹测试开发学社

Docker 搭建性能监控平台

霍格沃兹测试开发学社

Go 语言中排序的 3 种方法

AlwaysBeta

Go

Docker 搭建Web服务器nginx

霍格沃兹测试开发学社

k8s中无声的性能杀手:cpu thorttling(限流)

摸鱼编程

k8s 性能 高并发

如何三步实现高性能WordPress网站的部署

平平无奇爱好科技

干货丨云耀云服务器L实例需要配置升级教程

平平无奇爱好科技

APP自动化如何使用参数化用例

霍格沃兹测试开发学社

APP自动化之Toast识别

霍格沃兹测试开发学社

TestNG 与 Junit如何选择

霍格沃兹测试开发学社

google borg(k8s亲爹) 论文读后感

摸鱼编程

k8s Google borg

快手公布自研大模型最新进展:“快手AI对话”已开放内测

Geek老T

AI Codec 大语言模型

如何搭建企业个人直播流媒体服务器,使用OBS推送PC桌面流到SRS

平平无奇爱好科技

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