什么时候应该通过普通的PropertyMetadata使用FrameworkPropertyMetadata或UIPropertyMetadata?

查看示例附加的属性和行为时,我已经看到了FrameworkPropertyMetadataUIPropertyMetadataPropertyMetadata的使用混杂。 由于它们都构成一个inheritance层次结构,我该如何select使用哪一个呢?

这些类将报告依赖项属性的一些行为方面。

检查他们提供的选项不同的类。

例如,

如果您只想通过dp备份属性并提供默认值,请使用PropertyMetadata

如果要指定animation行为,请使用UIPropertyMetadata

但如果某些属性影响wpf框架级别的东西,例如元素布局,父布局或数据绑定,请使用FrameworkPropertyMetadata

你可以在msdn上查看详细信息http://msdn.microsoft.com/en-us/library/ms751554.aspx