Freigeben über


AmbientValueAttribute-Klasse

Gibt den Wert an, der an eine Eigenschaft übergeben wird, damit die Eigenschaft ihren Wert aus einer anderen Quelle abruft. Dies wird als Umgebungsabhängigkeit bezeichnet. Diese Klasse kann nicht vererbt werden.

Namespace: System.ComponentModel
Assembly: System (in system.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.All)> _
Public NotInheritable Class AmbientValueAttribute
    Inherits Attribute
'Usage
Dim instance As AmbientValueAttribute
[AttributeUsageAttribute(AttributeTargets.All)] 
public sealed class AmbientValueAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::All)] 
public ref class AmbientValueAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.All) */ 
public final class AmbientValueAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.All) 
public final class AmbientValueAttribute extends Attribute

Hinweise

Wenn einer Eigenschaft für ein Steuerelement umgebungsabhängiges Verhalten zugewiesen ist, muss dieses Attribut vorhanden sein. Umgebungsabhängige Eigenschaften fragen ihre übergeordnete Eigenschaft nach deren Wert ab, z. B. eine Control.Font-Eigenschaft oder eine Control.BackColor-Eigenschaft.

In der Regel entscheiden visuelle Designer mithilfe des AmbientValueAttribute-Attributs, welcher Wert für eine Eigenschaft beibehalten wird. Dies ist in den meisten Fällen ein Wert, aufgrund dessen die Eigenschaft ihren Wert aus einer anderen Quelle abruft. Ein Beispiel für einen umgebungsabhängigen Wert ist Color.Empty, der als umgebungsabhängiger Wert für die BackColor-Eigenschaft fungiert. Wenn ein Steuerelement in einem Formular vorhanden ist und die BackColor-Eigenschaft des Steuerelements auf eine andere Farbe festgelegt ist als die BackColor-Eigenschaft des Formulars, können Sie die BackColor-Eigenschaft des Steuerelements auf diejenige des Formulars zurücksetzen, indem Sie die BackColor des Steuerelements auf Color.Empty festlegen.

Beispiel

Im folgenden Codebeispiel wird die Verwendung von AmbientValueAttribute veranschaulicht, um das umgebungsabhängige Verhalten für eine Eigenschaft mit der Bezeichnung AlertForeColor zu erzwingen. Eine vollständige Codeauflistung finden Sie unter Gewusst wie: Anwenden von Attributen auf Windows Forms-Steuerelemente.

<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 Not (Me.Parent Is 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
[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);
}

Vererbungshierarchie

System.Object
   System.Attribute
    System.ComponentModel.AmbientValueAttribute

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

AmbientValueAttribute-Member
System.ComponentModel-Namespace