我知道这些类之间的基本区别是我们在备份属性时使用PropertyMetadata,当我们想要支持动画时使用UIPropertyMetadata,以及在用户控件中使用FrameworkMetadata for Framework属性.
但我只理解理论部分.如果你能解释一个最简单的例子,它将在3个不同的依赖属性中使用所有这3个类,清楚地区分它们,这将是一个很好的例子.
提前致谢.
小智 13
来源:PropertyMetadata与FrameworkPropertyMetadata
当你实现一个自定义依赖项属性,并通过调用注册的属性
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
- 在日记时存储此值?SubPropertiesDoNotAffectRender
- 布局更改时检查此对象的属性?
PropertyMetadata和FrameworkPropertyMetadata之间的一个重要实际区别是后者允许指定一组FrameworkPropertyMetadataOptions.
例如,指定FrameworkPropertyMetadataOptions.AffectsRender
启动重新呈现属性已更改的UIElement的注意事项.如果没有此标志,则必须在PropertyChangedCallback中手动执行此操作.
归档时间: |
|
查看次数: |
5444 次 |
最近记录: |