|
|
1
48
事实上,它们作为普通属性(带有get和set访问器)公开在非类型化的DependencyObject之上。设定值/获取值。 另一方面,附加属性是不同的。它们被视为一个可扩展的系统。如果你曾经在Windows窗体中使用过扩展器,它们有点相似。 您将它们声明为一个类型的一部分,以便在另一个类型上使用。 它们被大量用于与布局相关的信息。例如,Canvas需要左/上坐标,Grid需要行和列,DockPanel需要Dock信息等。如果所有这些都必须在每个可以分配的控制权上声明,那将是一团糟。因此,它们在相应的面板上声明,但在任何控件上使用。 如果需要,您可以使用相同的东西将任何信息附加到DependencyObject。例如,只需声明一条信息,您就可以在xaml中设置该信息,以便以后在现有类的样式中使用,这会很方便。
|
|
|
2
9
DependencyProperty之间的区别。Register()和DependencyProperty。RegisterAttached()就是这样。Register()用于在DependencyObject上注册“常规”依赖属性,而。RegisterAttached()用于设置“附加”依赖属性。
|
|
|
3
3
使用Register或RegisterAttached注册的属性可以通过SetValue和GetValue附加到任何DependencyObject。但是,如果将使用Register注册的属性附加到ownerType以外类型的对象,则不会使用其元数据(默认值除外)。这意味着“继承”或“影响度量”等属性将不适用于这些属性。如果您对附加属性的元数据感兴趣,则应使用RegisterAttached。 有关详细信息,请参阅我对类似问题的回答: Difference between Attached and non-Attached Dependency Properties in Silverlight |
|
|
CasualNobody · 公开UserControls内容模板 8 年前 |
|
|
Tom · WPF中相同usercontrol的不同实例中的不同值 8 年前 |
|
|
Johannes · 从UserControl获取绑定列表 8 年前 |
|
|
Mike Eason · 在数据触发器中使用依赖属性 10 年前 |