AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

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

关注

评论 1 条评论

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

你真的了解 “开源” 么?请查收【保姆级】开源百科

程序员鱼皮

Java c++ Python GitHub 开源

k8s 插件管理工具之krew使用

雪雷

6月日更

渣本毕业两年经验,精心整理

欢喜学安卓

android 程序员 面试 移动开发

5分钟速读之Rust权威指南(十五)

wzx

rust

情指勤一体化指挥调度平台搭建,情报研判分析系统搭建

分治(详解残缺棋盘 —— Java代码实现)

若尘

算法 分治 java代码 6月日更

​探讨AI+新模式,百度大脑提供纺织企业数字化转型新路径

百度大脑

AI 纺织企业

🏆大势所趋,迈向认识WebRTC的第一步,加油!

码界西柚

WebRTC RTC RTC征文大赛 6月日更

手把手教你在IDEA中配置Maven

打工人!

Java maven 6月日更

你们公司的数据库出过问题么?

escray

学习 极客时间 朱赟的技术管理课 6月日更

架构实战营模块5作业

eoeoeo

架构实战营

【Apache BookKeeper】 概念与架构

awen

Apache 分布式存储 bookKeeper

BZZ节点挖矿系统搭建,BZZ矿机分币系统

webRTC实现音视频通话与屏幕共享

侠客行

WebRTC 屏幕共享 iOS屏幕共享 web屏幕共享

我对技术潮流的一点看法

Phoenix

持续测试 | 让测试更自由:在 CODING 中实践自动化执行用例

CODING DevOps

DevOps 自动化测试 持续测试

面试系列-2 redis列表场景分析实践

李阿柯

php 面试 redis cluster

Tapdata 实时数据融合平台解决方案(三):数据中台的技术需求

tapdata

oracle mongodb

Tapdata 实时数据融合平台解决方案(四):技术选型

tapdata

大数据

Qcon大会百度智能云出招,AI-Native云计算架服务企业融合创新

百度大脑

人工智能 云计算 Qcon

基于 BDD 理论的 Nebula 集成测试框架重构(上篇)

NebulaGraph

HarmonyOS 2正式发布 硬件生态品牌HarmonyOS Connect一同亮相

科技汇

OpenKruise v0.9.0 版本发布:新增 Pod 重启、删除防护等重磅功能

阿里巴巴云原生

容器 运维 云原生 k8s

智能炒币机器人系统开发案例解析,智能炒币机器人源码设计

系统开发咨询1357O98O718

6月2日,讲一个鸿蒙的故事

这不科技

华为 鸿蒙

Tapdata 实时数据融合平台解决方案(五):落地

tapdata

大数据

《堂食点餐》APP前后端全部免费开源啦!

YonBuilder低代码开发平台

源码 大前端 APP开发 APICloud 外卖app

源码解读-别再说你不知道HashMap原理!面试真题解析

欢喜学安卓

android 程序员 面试 移动开发

🔎【Java 源码探索】深入浅出的分析HashMap(JDK7)

码界西柚

Java hashmap 6月日更 JDK7

【Vue2.x 源码学习】第二篇 - Vue的初始化流程

Brave

源码 vue2 6月日更

Spring Boot FatJar类加载机制简要分析

luojiahu

Spring Boot 类加载 ClassLoader FatJar

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