【最佳实践】【Blend】Triggers、Actions 和 Behaviors
Triggers和Actions是因果关系模型,一个触发器可以调用一个或多个操作,与WPF中的模型基本一致。
所谓Trigger,就是监听某些条件的变化,比如事件触发,属性值改变等,进而触发一些动作的发生。
自定义Triiger只需要从TriggerBase继承,并覆盖OnAttached和OnDetaching方法即可。
所谓Action,就是执行某些操作的一个对象。
可以根据需要创建自己的Action,常见的需要创建Action的情况有:改变属性、调用方法、打开窗口、导航到某个页面、设置焦点等。
自定义Action可从 TriggerAction或TargetedTriggerAction继承,区别在于这个操作是否有目标对象,然后覆盖Invoke方法即可。
Triggers和Actions理论是可以相互独立,任意组合的。
当你在定义时发现有些逻辑上需要相互确定或者假定发生 时,Behaviors需要登台了。
Behaviors乍看起来像是Actions,但它是逻辑独立功能自备的独立单元,它无需触发器,常常定义 Behavior时就已经确定。
创建自定义Behavior需要从Behavior继承,并覆盖 OnAttached和OnDetaching方法,复杂行为时需要用到ICommand.
转载于:https://www.cnblogs.com/ningth/archive/2011/12/07/2279283.html
【最佳实践】【Blend】Triggers、Actions 和 Behaviors相关推荐
- 使用Typescript和React的最佳实践
by Christopher Diggins 克里斯托弗·迪金斯(Christopher Diggins) 使用Typescript和React的最佳实践 (Best practices for us ...
- 学习sql注入:猜测数据库_学习SQL:删除和更新数据SQL最佳实践
学习sql注入:猜测数据库 Deleting and updating data is very common, but if performed without taking care, which ...
- SQL Server 最佳实践分析器使用小结
Best Practices Analyzer Tool for Microsoft SQL Server 2000是Microsoft SQL Server开发团队开发的一个数据库管理工具,可以让你 ...
- web前端开发最佳实践_学习前端Web开发的最佳方法
web前端开发最佳实践 为什么要进行网站开发? (Why web development?) Web development is a field that is not going anywhere ...
- 调优 DB2 UDB v8.1 及其数据库的最佳实践-IBM developerWorks
http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0404mcarthur/#sqltuning 级别: 初级 ...
- React.js 2016 最佳实践 徬梓阅读 1584收藏 71
为什么80%的码农都做不了架构师?>>> 译者按:近几个月React相关话题依旧火热,相信越来越多的开发者在尝试这样一项技术,我们团队也在PC和移动端不断总结经验.2016来了 ...
- Git 最佳实践:分支管理
5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...
- 需求分析与建模最佳实践_社交媒体和主题建模:如何在实践中分析帖子
需求分析与建模最佳实践 主题建模的实际使用 (Practical use of topic modeling) There is a substantial amount of data genera ...
- ASP.NET Core 性能优化最佳实践
本文提供了 ASP.NET Core 的性能最佳实践指南. 译文原文地址:https://docs.microsoft.com/en-us/aspnet/core/performance/perfor ...
- 小程序 Typescript 最佳实践
小程序结合TypeScript开发,如果用第三方框架,首选Taro已完美支持.但是如果你选择原生开发,那么下面的这份实践可能会帮到你. 小程序 Typescript 最佳实践 使用 gulp 构建(支 ...
最新文章
- 京东商品详情页碎碎念
- 关于阿里巴巴iconfont的使用方法
- java调用命令行命令_Java命令行界面(第4部分):命令行
- array_column php什么版本可以用,array_column兼容php5.5以下版本
- java异常顺序_网易新闻
- Django环境安装和创建工程
- 二级c语言改错题库,二级C语言题库-改错题(参考).doc
- 帆软报表帮助文档_给大家分享一款值得推荐的免费好用的web报表插件
- 64位WIN7系统下无法安装驱动/ 有黄色感叹号怎么办?
- matlab中一个显示根号的技巧
- 查看浏览器版本及内核信息
- Chapter5.1:频率响应法
- vue + html2canvas + ArcGIS 3.x 地图一键截图功能踩坑之路(二)
- HttpWebRequest 无法连接到远程服务器
- 如何一键关闭所有视窗?
- android 标注 比例换算,android APP UI设计图标注、换算
- Python笔记-上证指数收益率计算
- LoadLibrary无法加载.dll解决思路
- 论文阅读【6】Autoaugment: Learning augmentation strategies from data
- 华为云桌面Workspace,让你的办公更加舒适惬意
热门文章
- 这两个漏洞暴露 Facebook Group 成员,有个用手机就能发现,获奖$9000
- Docker-服务安装
- 京东与滁州达成战略合作,共建全国首座智慧型家电产地仓
- 《Java安全编码标准》一导读
- 密码破解之Esxi重置root密码
- 在Mac系统下架设WiFi热点,对比Win7
- 多线程之join用法
- 【iOS开发】使用XCode 10添加Launch Image(启动图片)
- 1091. Acute Stroke (30)-PAT甲级真题(广度优先搜索)
- maven 排除某个类_java-如何从Maven依赖项中排除某些程序包(在JAR中)?