博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Behavior
阅读量:4570 次
发布时间:2019-06-08

本文共 1859 字,大约阅读时间需要 6 分钟。

Behavior翻译是行为

在WPF中Behavior的使用时必须引用Blend的程序集。

‪C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries\System.Windows.Interactivity.dll

 System.Windows.Interactivity;

 

或者通过Nuget包管理来获取。

 

现在来说说如果使用

behavior是行为,而这个行为是针对控件的。

就目前WPF添加行为的方式可以有附加属性 附加事件 依赖属性等方法。

就特性而言behavior和附加属性很相似。

那么使用方式:

  1. 创建一个由Behavior<DependencyObject>所派生的类

  2. 创建依赖属性(不用回调方法)

  3. 根据你想要的效果来重写Behavior的方法

  4. 在xaml中使用

public class ATCH : Behavior
{ public static readonly DependencyProperty BackRedProperty = DependencyProperty.Register("BackRed", typeof(bool), typeof(ATCH), new PropertyMetadata(false, null)); public bool BackRed { get { return (bool)GetValue(BackRedProperty); } set { SetValue(BackRedProperty,value); } } ///
/// 当behavior附加成功时 /// protected override void OnAttached() { base.OnAttached(); } ///
/// 当behavior分离时 /// protected override void OnDetaching() { base.OnDetaching(); } ///
/// 当属性变化时 /// ///
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) { if ((bool)e.NewValue) AssociatedObject.Background = new SolidColorBrush(Colors.Red); else AssociatedObject.Background = new SolidColorBrush(Colors.Gainsboro); } ///
/// 当属性变化 /// 此方法触发在OnPropertyChanged后 /// protected override void OnChanged() { base.OnChanged(); } }

而在xaml中则是

 

 

转载于:https://www.cnblogs.com/T-ARF/p/10464604.html

你可能感兴趣的文章
对redis深入理解
查看>>
centos7 install idea and x-windows
查看>>
Spring Boot + Spring Cloud 构建微服务系统(九):配置中心(Spring Cloud Config)
查看>>
【转】LINQ to SQL语句(1)之Where
查看>>
《基于MVC的javascript web富应用开发》中的一些函数
查看>>
0014---简单的计算
查看>>
自己写的文字轮播(简陋版)
查看>>
TWaver在FTTX设备网管系统中的应用
查看>>
python入门笔记1
查看>>
Word打不开老提示进入“安全模式”怎么办
查看>>
HTTP协议分析及攻防方法
查看>>
编程我们学到了什么?
查看>>
面向过程和面向对象的对比(转)
查看>>
206. 反转链表
查看>>
622. 设计循环队列
查看>>
MCMC 、抽样算法与软件实现
查看>>
Java开源工具 网站开发工具清单
查看>>
POJ 1442 Black Box
查看>>
Python 内置模块:os模块
查看>>
C# 中的特性 Attribute
查看>>