【问题标题】:All WPF control properties are dependency properties. True or False?所有 WPF 控件属性都是依赖属性。对或错?
【发布时间】:2010-09-22 09:22:32
【问题描述】:

在回答this 问题时,我注意到我从未遇到过任何不是依赖属性的属性(WPF 控件,没有第 3 方控件)。虽然,当我开始使用 WPF 时,我记得在某处读过“WPF 控件的 90% 以上的属性是依赖属性”。

谁能给出 WPF 控件中 CLR 属性的示例/链接以及为什么会这样?

更新:

看到这个讲座: http://www.miszalok.de/Lectures/L17_WPF/C4_DependencyProperties/DependencyProperties.pdf

上面写着:

标签有 18 个传统属性和 71 个依赖属性。

Button 有 18 个传统属性和 78 个依赖属性。

【问题讨论】:

  • GridLength 是一个例子

标签: c# wpf silverlight wpf-controls dependency-properties


【解决方案1】:

PasswordBox 属性 Password 未实现为不允许数据绑定的依赖属性,否则将存在安全风险。详情请见this post

【讨论】:

  • 哦,是的,我记得我的一位同事面临这个问题。谢谢。
【解决方案2】:

Panel.ChildrenFrameworkElement.Resources 不是依赖属性

【讨论】:

    【解决方案3】:

    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 中将值绑定到它们
    • 您可以绑定到 clr 属性,但需要注意一点:它将是一次性绑定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多