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

问题描述:

在查看示例附加属性和行为时,我看到了 FrameworkPropertyMetadataUIPropertyMetadataPropertyMetadata 的混合使用.既然都形成了一个继承层次,那我该如何选择使用哪一个呢?

When looking at sample attached properties and behaviors, I've seen a mishmash of uses of FrameworkPropertyMetadata, UIPropertyMetadata and PropertyMetadata. Since they all form an inheritance hierarchy, how do I choose which one to use?

这些类用于报告依赖属性的一些行为方面.

These classes are to report some behavior aspects of a dependency property.

检查不同的类以了解它们提供的选项.

Check the different classes for the options they provide.

例如,

如果你只是想通过 dp 来支持一个属性并提供一个默认值,使用 PropertyMetadata,

if you just want to back a property by dp and provide a default value, use PropertyMetadata,

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

if you want to specify animation behavior, use UIPropertyMetadata,

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

but if some property affects wpf framework level stuffs eg element layout, parent layout or databinding, use FrameworkPropertyMetadata.

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

Details you can check on msdn http://msdn.microsoft.com/en-us/library/ms751554.aspx