【问题标题】:What is the use of AmbientValue Attribute?AmbientValue 属性有什么用?
【发布时间】:2013-08-08 13:58:43
【问题描述】:

我遇到了这门课AmbientValueAttribute。 它是您可以在类的属性上指定的属性。 我阅读了整个页面http://msdn.microsoft.com/en-us/library/system.componentmodel.ambientvalueattribute.aspx,包括示例。但是我仍然不清楚它的用法。

在我看来,这只是表明该属性反映了另一个对象的属性(为什么要这样做?)。还是还有更多?

那么这个属性有什么用呢?

【问题讨论】:

    标签: c# properties attributes


    【解决方案1】:

    我自己从来没有使用过这个属性,但我认为是用来给可视化设计工具一个属性的默认值的指示。

    代码示例是一个颜色属性,我认为环境值是在没有为该属性设置值时显示的值。因此,在示例中,如果您有 AlertForeColor 属性的设计器,则如果未选择任何值,则将显示值“Empty”。

    我认为这个想法是,您可以通过显示环境值而不是实际值(例如可能为空白的实际值)来为用户提供更好的体验。

    现在,我自己没有使用过这个属性,但我认为这是它的预期用途。

    【讨论】:

    • 听起来合乎逻辑。但是我希望框架能够在 TextBox 类中使用它自己(来源:dotnetframework.org/default.aspx/4@0/4@0/DEVDIV_TFS/Dev10/…),但我无法在其中找到它,在 System.Windows.Forms.Button 类中也没有。
    • 是的。我在 Google 代码搜索和 Ohloh 上进行了搜索,均未返回任何有趣的结果,但在 GitHub 上搜索返回了一些用法。它似乎被用作一种在不设置属性值本身的情况下提供默认值的方法。
    • 我也知道give a default value without setting the property value itself.。但这就是DefaultValueAttribute 的确切目的。
    【解决方案2】:

    这真的很晚了,但我知道答案。

    当您将按钮放在设计器表面时,其字体始终与其容器的字体相同。这是有道理的:如果您将表单的字体设置为特殊字体,您可能希望所有控件也具有特殊字体。

    这就是“环境”属性的工作原理。虽然该属性可能具有默认值,但该属性建议设计者应改为使用父级的值。如果没有父级的属性值,将使用“真实”默认值。

    我不知道它是否真的有效,我不能说我自己曾经尝试过这个属性。

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 2014-09-12
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多