WPF自定义控件随写知识(1)
WPF 属性元数据PropertyMetadata,UIPropertyMetadata,FrameworkPropertyMetadata作用
依赖属性元数据的作用,这里标记一下。
FrameworkPropertyMetadata继承自UIPropertyMetadata,
UIPropertyMetadata继承PropertyMetadata。
当你要实现一个自定义的依赖属性的时候,要调用DependencyProperty.Register函数注册属性,你要指定一个PropertyMetadata 类型的元数据。元数据应该是PropertyMetadata 类或者其子类的实例。他们之间的区别如下:
PropertyMetadata ——依赖属性的基本元数据
- CoerceValueCallback ——当设置属性值的时候强制转换属性值
- DefaultValue ——属性的默认值
- PropertyChangedCallback ——当属性的有效的属性值发生改变时的响应。
UIPropertyMetadata ——继承自PropertyMetadata 并增加了:
- IsAnimationProhibited ——是否在属性上禁用动画
FrameworkPropertyMetadata ——继承自UIPropertyMetadata 并增加了:
- AffectsArrange, AffectsMeasure, AffectsParentArrange, AffectsParentMeasure, AffectsRender ——属性值改变后是否重新运行布局计算
- BindsTwoWayByDefault, DefaultUpdateSourceTrigger, IsDataBindingAllowed, IsNotDataBindable ——确定属性如何参与数据绑定
- Inherits, OverridesInheritanceBehavior ——是否允许属性值被继承
- Journal ——在日志中存储改属性值