所有的WPF控件属性都是依赖属性。是还是不是?

3
在回答这个问题时,我注意到我从未遇到过任何非依赖属性的属性(WPF控件,没有第三方控件)。尽管当我开始使用WPF时,我记得在某个地方读到“超过90%的WPF控件属性是依赖属性”。
有人能举例说明WPF控件中的CLR属性,并解释原因吗?
更新:
发现了这个讲座: http://www.miszalok.de/Lectures/L17_WPF/C4_DependencyProperties/DependencyProperties.pdf 其中说:
Label有18个传统属性和71个依赖属性。
Button有18个传统属性和78个依赖属性。

1
GridLength是一个例子。 - Mark
3个回答

6

PasswordBox属性Password没有实现为依赖属性,以防止数据绑定,否则会存在安全风险。有关详细信息,请参见此帖子


哦,是的,我记得我的一个同事也遇到过这个问题。谢谢。 - akjoshi

1

Panel.ChildrenFrameworkElement.Resources不是依赖属性


1

还有在 WPF 4 之前的 CommandParameters 是 CLR 属性!

来自 MSDN:

绑定到 InputBinding 上的 commands。 您可以将 InputBinding 类的 Command 属性绑定到在代码中定义的实例。以下属性是依赖属性,因此它们可以成为绑定的目标:

  • InputBinding.Command
  • InputBinding.CommandParameter
  • InputBinding.CommandTarget
  • KeyBinding.Key
  • KeyBinding.Modifiers
  • MouseBinding.MouseAction

http://msdn.microsoft.com/en-us/library/bb613588.aspx


这似乎不正确,因为我通常在3.5sp1中将值绑定到它们。 - Bryan Anderson
您可以绑定到clr属性,但有一个限制:它将是OneTime绑定。 - Denis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接