请问为什么依赖属性要声明为静态的?
DependencyProperty
时,您声明的是该属性的定义,而不是该属性值的存储空间(与常规属性声明情况下的情况相反)。整个类中只有一个属性定义,而不是每个类实例都有一个定义,因此它是静态的。你声明为 static 的字段只是依赖属性的 标识符,而不是属性的 值。它在类的所有实例之间共享,并用于为每个实例获取/设置属性的值。
TextBox.TextProperty
)定义,该字段是静态的。 要获取给定实例的属性值,您可以在实例上调用GetValue(TextProperty)
;为了使事情更容易,大多数DP都有一个作为快捷方式的实例属性(例如TextBox.Text
)。 - Thomas Levesque