wpf - 谁对 WPF 依赖属性有最好的比喻?

标签 wpf dependency-properties

我正在阅读 C# 2008 中的 WPF 食谱:

http://www.apress.com/book/view/9781430210849

从第三个秘诀开始,他们假设您知道依赖属性是如何工作的。

因此,经过一番谷歌搜索后,我大致了解这些是对象的属性,当放置在另一个对象中时,它们会“适应上下文”到宿主对象。我还“了解到”“你永远不会真正知道这些属性的值(value)是什么,因为它们取决于它们的上下文。”

但是书中描述的大部分内容仍然让我不知道在构建应用程序时如何使用它们。

对于刚开始使用它们并想知道何时以及如何使用它们的人来说,谁有一个很好的依赖属性隐喻或示例?

最佳答案

依赖属性就像普通属性一样,只是它们有一些 WPF 使用的特殊“钩子(Hook)”。

一个特别的事情是,有时如果您不设置属性值,它将从其所在的控件接收其值(因此,如果您为按钮设置字体,按钮内的文本 block 将使用此字体除非您为文本 block 指定了不同的字体),我认为这是所有“永远不知道值”废话的根源。

如果您正在编写 WPF 控件,您可能应该使用依赖属性,因为您可以指定更改是否应自动导致控件重新呈现自身(以及更多),并且您可以将它们用于数据绑定(bind)。

如果您正在编写一个从 Freezable 派生的类(直接或间接),仅使用依赖项属性将为您节省一些工作。

如果您正在编写一个不特定于 WPF 的类,那么可能没有理由使用依赖属性。

关于wpf - 谁对 WPF 依赖属性有最好的比喻?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/479180/

相关文章:

c# - 如何访问WPF框架导航栏中的控件?

c# - 如何创建 "Shell IDList Array"以支持将虚拟文件从 C# 拖放到 Windows 资源管理器?

c# - 绑定(bind)到 DependencyProperty 仅适用于 "MyValue",不适用于 "{Binding PropertyHoldingMyValue}"

c# - 如何以编程方式设置附加属性,例如。 Viewport2DVisual3D.IsVisualHostMaterialProperty

c++ - .NET 查看其他应用程序的内存

wpf - StyleSelector 并从 XAML 返回样式

wpf - ListView 数据模板绑定(bind)

c# - 即时依赖属性

wpf - 依赖 属性依赖于另一个

c# - 将自定义属性绑定(bind)到 TextBox UWP