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

Rog*_*mbe 79 wpf attachedbehaviors attached-properties

在查看样本附加的属性和行为时,我已经看到了使用的混合物FrameworkPropertyMetadata,UIPropertyMetadataPropertyMetadata.由于它们都构成了一个继承层次结构,我该如何选择使用哪一个?

gp.*_*gp. 76

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

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

例如,

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

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

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

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

  • 那是因为WPF和Silverlight之间共享相同的片段.您可以通过以下链接尝试使用不同的Silverlight片段:http://blog.nerdplusart.com/archives/silverlight-code-snippets (6认同)
  • 真正的问题是,为什么propdp片段使用UIPropertyMetadata,特别是因为Silverlight中没有PropertyMetadata子类?它让我疯了. (2认同)
  • MSDN说:"通常,你应该使用FrameworkPropertyMetadata,特别是如果你的属性与属性系统和WPF函数(如布局和数据绑定)有任何交互." - (指定元数据)http://msdn.microsoft.com/en-us/library/ms751554.aspx (2认同)