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


81

在查看样本附加的属性和行为时,我看到了FrameworkPropertyMetadataUIPropertyMetadata和的用法杂乱无章PropertyMetadata。由于它们都形成了继承层次结构,我该如何选择要使用的继承层次结构?

Answers:


80

这些类用于报告依赖项属性的某些行为方面。

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

例如,

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

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

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

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


2
真正的问题是,为什么propdp代码段使用UIPropertyMetadata,尤其是由于Silverlight中没有PropertyMetadata子类?它使我发疯。
Grank

6
这是因为WPF和Silverlight之间共享相同的代码片段。您可以通过以下链接尝试不同的Silverlight片段:blog.nerdplusart.com/archives/silverlight-code-snippets
gp。

2
MSDN说:“通常,应该使用FrameworkPropertyMetadata,尤其是当您的属性与属性系统和WPF功能(例如布局和数据绑定)进行任何交互时。” -(指定元数据)msdn.microsoft.com/en-us/library/ms751554.aspx
Wayne Bloss,

FrameworkPropertyMetadata应该用于哪种数据绑定?我只想要绑定到控件的IsEnabled的属性。
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.