【问题标题】:How can a static property be set to a value only for a specific element?如何将静态属性设置为仅针对特定元素的值?
【发布时间】:2017-09-10 06:01:03
【问题描述】:

如果Stylus.IsPressAndHoldEnabledStylus 类的静态属性,它的值不应该是全局的吗?如何仅为一个元素(如按钮)设置一个值?

<Setter Property="Stylus.IsPressAndHoldEnabled" Value="False"/>

这当然是一个普遍的问题,不仅仅适用于这个类和属性。我只是想了解 WPF 的工作原理。我将不胜感激任何涉及此主题的链接。

【问题讨论】:

  • 控制的引用被传递给 SetValue 和 GetValue。如果您深入研究,您会发现这些参考文献存储在字典中。

标签: c# wpf xaml properties static


【解决方案1】:

这些属性是依赖属性附加属性(依赖属性的一种特殊情况)。它们在技术上是静态的,但是您看不到生成的对GetValueSetValue 的调用确实采用了有问题的控制实例。 static 部分实际上只是设置属性,以便框架知道它。

您实际上可以在propdp sn-p 生成的普通属性中看到这些调用(请注意,框架从不调用这些属性,它们只是为了您的方便)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2019-09-29
    相关资源
    最近更新 更多