AmbientValueAttribute 類別

定義

指定要傳遞至屬性的值,讓屬性從其他來源取得其值。Specifies the value to pass to a property to cause the property to get its value from another source. 這稱為「環境」。This is known as ambience. 此類別無法獲得繼承。This class cannot be inherited.

public ref class AmbientValueAttribute sealed : Attribute
public sealed class AmbientValueAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public sealed class AmbientValueAttribute : Attribute
type AmbientValueAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientValueAttribute
Inherits Attribute
繼承
AmbientValueAttribute
屬性

範例

下列程式碼範例示範如何使用 AmbientValueAttribute 來強制執行稱為 AlertForeColor之屬性的環境行為。The following code example demonstrates using AmbientValueAttribute to enforce ambient behavior for a property called AlertForeColor. 如需完整的程式代碼清單,請參閱如何:在 Windows Forms 控制項中套用屬性For a full code listing, see How to: Apply Attributes in Windows Forms Controls.

[AmbientValue(typeof(Color), "Empty")]
[Category("Appearance")]
[DefaultValue(typeof(Color), "White")]
[Description("The color used for painting alert text.")]
public Color AlertForeColor
{
    get
    {
        if (this.alertForeColorValue == Color.Empty &&
            this.Parent != null)
        {
            return Parent.ForeColor;
        }

        return this.alertForeColorValue;
    }

    set
    {
        this.alertForeColorValue = value;
    }
}

// This method is used by designers to enable resetting the
// property to its default value.
public void ResetAlertForeColor()
{
    this.AlertForeColor = AttributesDemoControl.defaultAlertForeColorValue;
}

// This method indicates to designers whether the property
// value is different from the ambient value, in which case
// the designer should persist the value.
private bool ShouldSerializeAlertForeColor()
{
    return (this.alertForeColorValue != AttributesDemoControl.ambientColorValue);
}
<AmbientValue(GetType(Color), "Empty"), _
Category("Appearance"), _
DefaultValue(GetType(Color), "White"), _
Description("The color used for painting alert text.")> _
Public Property AlertForeColor() As Color
    Get
        If Me.alertForeColorValue = Color.Empty AndAlso (Me.Parent IsNot Nothing) Then
            Return Parent.ForeColor
        End If

        Return Me.alertForeColorValue
    End Get

    Set(ByVal value As Color)
        Me.alertForeColorValue = value
    End Set
End Property

' This method is used by designers to enable resetting the
' property to its default value.
Public Sub ResetAlertForeColor()
    Me.AlertForeColor = AttributesDemoControl.defaultAlertForeColorValue
End Sub

' This method indicates to designers whether the property
' value is different from the ambient value, in which case
' the designer should persist the value.
Private Function ShouldSerializeAlertForeColor() As Boolean
    Return Me.alertForeColorValue <> AttributesDemoControl.ambientColorValue
End Function

備註

如果控制項上的屬性具有環境行為,則必須要有這個屬性。If a property on a control has ambient behavior, this attribute must be present. 環境屬性會查詢其父系的值,例如,Control.Font 屬性或 Control.BackColor 屬性。Ambient properties query their parent for their value, for example, a Control.Font property or a Control.BackColor property.

一般而言,視覺化設計工具會使用 AmbientValueAttribute 屬性來決定要為屬性保存的值。Typically, a visual designer uses the AmbientValueAttribute attribute to decide which value to persist for a property. 這通常是導致屬性從另一個來源取得其值的值。This is usually a value that causes the property to get its value from another source. 環境值的範例 Color.EmptyBackColor 屬性的環境值。An example of an ambient value is Color.Empty as the ambient value for the BackColor property. 如果您在表單上具有控制項,且控制項的 [BackColor] 屬性設定為與表單的 [BackColor] 屬性不同的色彩,您可以將控制項的 [BackColor] 設定為 [Color.Empty],以將控制項的 [BackColor] 屬性重設為表單的內容。If you have a control on a form and the BackColor property of the control is set to a different color than the BackColor property of the form, you can reset the BackColor property of the control to that of the form by setting the BackColor of the control to Color.Empty.

建構函式

AmbientValueAttribute(Boolean)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為 Boolean 值。Initializes a new instance of the AmbientValueAttribute class, given a Boolean value for its value.

AmbientValueAttribute(Byte)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為 8 位元不帶正負號的整數 (Unsigned Integer)。Initializes a new instance of the AmbientValueAttribute class, given an 8-bit unsigned integer for its value.

AmbientValueAttribute(Char)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為 Unicode 字元。Initializes a new instance of the AmbientValueAttribute class, given a Unicode character for its value.

AmbientValueAttribute(Double)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為雙精度浮點數。Initializes a new instance of the AmbientValueAttribute class, given a double-precision floating-point number for its value.

AmbientValueAttribute(Int16)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為 16 位元帶正負號的整數。Initializes a new instance of the AmbientValueAttribute class, given a 16-bit signed integer for its value.

AmbientValueAttribute(Int32)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為 32 位元帶正負號的整數。Initializes a new instance of the AmbientValueAttribute class, given a 32-bit signed integer for its value.

AmbientValueAttribute(Int64)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為 64 位元帶正負號的整數。Initializes a new instance of the AmbientValueAttribute class, given a 64-bit signed integer for its value.

AmbientValueAttribute(Object)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為物件。Initializes a new instance of the AmbientValueAttribute class, given an object for its value.

AmbientValueAttribute(Single)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為單精確度浮點數。Initializes a new instance of the AmbientValueAttribute class, given a single-precision floating point number for its value.

AmbientValueAttribute(String)

初始化 AmbientValueAttribute 類別的新執行個體,需指定其值為字串。Initializes a new instance of the AmbientValueAttribute class, given a string for its value.

AmbientValueAttribute(Type, String)

初始化 AmbientValueAttribute 類別的新執行個體,需指定值和型別。Initializes a new instance of the AmbientValueAttribute class, given the value and its type.

屬性

TypeId

在衍生類別中實作時,取得這個 Attribute 的唯一識別碼。When implemented in a derived class, gets a unique identifier for this Attribute.

(繼承來源 Attribute)
Value

取得物件,其為這個 AmbientValueAttribute 的值。Gets the object that is the value of this AmbientValueAttribute.

方法

Equals(Object)

判斷指定的 AmbientValueAttribute 是否等於目前的 AmbientValueAttributeDetermines whether the specified AmbientValueAttribute is equal to the current AmbientValueAttribute.

GetHashCode()

傳回這個執行個體的雜湊碼。Returns the hash code for this instance.

GetType()

取得目前執行個體的 TypeGets the Type of the current instance.

(繼承來源 Object)
IsDefaultAttribute()

在衍生類別中覆寫時,表示這個執行個體的值是衍生類別的預設值。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(繼承來源 Attribute)
Match(Object)

在衍生類別中覆寫時,會傳回值,表示這個執行個體是否等於指定物件。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(繼承來源 Attribute)
MemberwiseClone()

建立目前 Object 的淺層複製。Creates a shallow copy of the current Object.

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。Returns a string that represents the current object.

(繼承來源 Object)

明確介面實作

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。Maps a set of names to a corresponding set of dispatch identifiers.

(繼承來源 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

擷取物件的類型資訊,可以用來取得介面的類型資訊。Retrieves the type information for an object, which can be used to get the type information for an interface.

(繼承來源 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

擷取物件提供的類型資訊介面數目 (0 或 1)。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(繼承來源 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供物件所公開的屬性和方法的存取權。Provides access to properties and methods exposed by an object.

(繼承來源 Attribute)

適用於