(自定义)依赖项属性和WPF中附属属性之间的区别是什么?每个的用途是什么?这些实现通常如何不同?WPF中依赖项属性和附加属性之间有什么区别?
回答
附加属性是一种依赖属性。区别在于它们如何使用。
对于附加属性,该属性在与其使用的类不同的类上定义。这通常用于布局。很好的例子是Panel.ZIndex或Grid.Row - 你将它应用于一个控件(即:Button),但它实际上是在Panel或Grid中定义的。该属性“附加”到按钮的实例。
例如,这允许容器创建可以在任何UI元素上使用的属性。
至于实现差异 - 基本上只是在定义属性时使用Register vs. RegisterAttached。
附加属性基本上是指容器元素。如果你有一个网格,并且你有grid.row现在这被认为是一个网格元素的附加属性。你也可以在texbox中使用这个属性,button在网格中设置它的位置。
依赖属性就像属性基本上属于某个其他类,并在其他类中使用。 例如:像你有一个矩形 这里的高度和宽度是矩形的常规属性,但左边和顶部是它属于Canvass类的依赖属性。
附加属性是一种特殊的DependencyProperties。它们允许您将值附加到不知道该值的任何对象上。 这个概念的一个很好的例子是布局面板。每个布局面板需要不同的数据来对齐其子元素。 Canvas需要Top和Left,DockPanel需要Dock等。由于您可以编写自己的布局面板,因此列表是无限的。所以你看,不可能在所有WPF控件上拥有所有这些属性。 该解决方案是附加属性。它们由需要来自另一个控件的数据的控件在特定上下文中定义。例如,由父布局面板对齐的元素。
我认为你可以在类中定义附属属性,或者你可以在另一个类中定义它。我们总是可以使用附加属性来扩展标准的微软控件。但是依赖属性,你可以在你自己的自定义控件中定义它。例如您可以从标准控件继承控件,并在您自己的控件中定义依赖项属性并使用它。这相当于定义一个附加属性,并在标准控件中使用此附加属性。
- 1. WPF中依赖项属性之间的区别
- 2. WPF依赖项属性MVVM
- 3. 什么是WPF中的依赖属性
- 4. 角色,隶属关系和属性之间有什么区别?
- 5. WPF:依赖属性和DataContext
- 6. 依赖属性WPF
- 7. Backbone.Model.Initialize中的属性和选项之间的区别是什么
- 8. 依赖属性SetValue()和SetCurrentValue()之间的区别
- 9. 依赖项之间共享属性
- 10. @JsonIgnore属性和没有注解的属性之间有什么区别?
- 11. C#/ WPF:依赖项属性没有更新绑定属性?
- 12. WPF/SilverLight中的依赖项属性
- 13. 使用WPF中的依赖项属性
- 14. 如何从附属依赖项属性设置属性值?
- 15. 为什么依赖属性?
- 16. WPF附加的依赖项属性计算的字段更新
- 17. restkit中的“属性”和“属性”有什么区别
- 18. ember.js中'[]'属性和'@each'属性有什么区别?
- 19. chefspec:谓词匹配器和属性之间有什么区别?
- 20. 属性clearTaskOnLaunch和finishOnTaskLaunch之间有什么区别?
- 21. ARC:成员变量和属性之间有什么区别?
- 22. MongoDB:文档,记录和属性之间有什么区别?
- 23. 活跃度和进度属性之间有什么区别?
- 24. src和data-src属性之间有什么区别?
- 25. 静态属性和单例之间有什么区别?
- 26. ASP.NET - ChildActionOnly和NonAction属性之间有什么区别?
- 27. 实体,实体集和属性之间有什么区别?
- 28. IBOutlet和IBOutlet属性有什么区别?
- 29. notable_for和notable_types属性有什么区别?
- 30. “wairole”和“role”属性有什么区别?
但究竟有什么区别?从我看到的你可以通过代码附加一个不可附加属性到另一个(我认为这在XAML中被阻塞了。)也许这是区别? – MarqueIV 2011-12-15 09:45:10