DependencyObject Class

Stellt ein Objekt dar, das am System der Abhängigkeitseigenschaften teilnimmt. DependencyObject ist die unmittelbare Basisklasse vieler wichtiger UI-bezogener Klassen wie UIElement, Geometry, FrameworkTemplate, Style und ResourceDictionary. Weitere Informationen dazu, wie DependencyObject-Abhängigkeitseigenschaften unterstützt werden, finden Sie unter Übersicht der Abhängigkeitseigenschaften.

Vererbung

Object
  DependencyObject

Syntax


public class DependencyObject

Attribute

[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

Member

DependencyObjectKlasse hat diese Membertypen:

Konstruktoren

DependencyObjectKlasse hat diese Konstruktoren.

KonstruktorBeschreibung
DependencyObject Provides base class initialization behavior for DependencyObject derived classes.

 

Methoden

The DependencyObject Klasse hat diese Methoden. Es erbt auch Methoden von Object Klasse.

MethodeBeschreibung
ClearValue Clears the local value of a dependency property.
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active.
GetValue Returns the current effective value of a dependency property from a DependencyObject.
ReadLocalValue Returns the local value of a dependency property, if a local value is set.
SetValue Sets the local value of a dependency property on a DependencyObject.

 

Eigenschaften

Der DependencyObjectKlasse hat diese Eigenschaften.

EigenschaftZugriffstypBeschreibung

Dispatcher

SchreibgeschütztGets the CoreDispatcher that this object is associated with.

 

Hinweise

Die DependencyObject-Klasse aktiviert Dienste des Abhängigkeitseigenschaftensystems für die zahlreichen abgeleiteten Klassen. Weitere Informationen zum Abhängigkeitseigenschaftenkonzept finden Sie in der Abhängigkeitseigenschaftenübersicht.

Die Hauptfunktion des Abhängigkeitseigenschaftensystems ist die Berechnung der Eigenschaftswerte. Darüber hinaus werden Systembenachrichtigungen im Falle von Wertänderungen ausgegeben. Eine weitere wesentliche Klasse, die am Abhängigkeitseigenschaftensystem beteiligt ist, ist DependencyProperty. DependencyProperty aktiviert die Registrierung von Abhängigkeitseigenschaften im Eigenschaftensystem, während DependencyObject als Basisklasse Objekte aktiviert, um die Abhängigkeitseigenschaften zu verwenden und festzulegen.

Im Folgenden finden Sie einige wichtige Dienste und Eigenschaften, die vom DependencyObject bereitgestellt oder unterstützt werden:

  • Unterstützung für das Hosting von Abhängigkeitseigenschaften.
  • Unterstützung für das Hosten benutzerdefinierter Abhängigkeitseigenschaften. Sie registrieren eine Abhängigkeitseigenschaft, indem Sie die Register-Methode aufrufen und den Rückgabewert der Methode als öffentliches statisches Feld in der DependencyObject-Klasse speichern.
  • Unterstützung für das Hosting von angefügten Eigenschaften.
  • Unterstützung für das Hosten benutzerdefinierter angefügter Eigenschaften. Bei Verwendung einer angefügten Eigenschaft wird eine Abhängigkeitseigenschaft durch einen Aufruf der RegisterAttached-Methode registriert, bei dem der Rückgabewert der Methode als öffentliche statische Eigenschaft in der betreffenden Klasse gespeichert wird.
  • Get und Set-Utility-Methoden für Werte von Abhängigkeitseigenschaften, die für DependencyObject vorhanden sind.
  • Zusätzliches Hilfsprogramm für die Untersuchung von Metadaten oder Eigenschaftswerten.
  • Dispatcher-Eigenschaft für erweiterte Threadingszenarien.
  • Grundlegende Unterstützung für Datenbindung und Formatierung, indem Eigenschaften als Ausdrücke festgelegt werden können, die zu einem späteren Zeitpunkt der Lebensdauer eines Objekts ausgewertet werden. Diese Konzepte werden ausführlicher unter Übersicht über Abhängigkeitseigenschaften erläutert. Weitere Informationen finden Sie unter Data binding overview.

DependencyObject und Threading

Alle DependencyObject-Instanzen müssen im UI-Thread, der dem aktuellen Window zugeordnet ist, das von einer Windows Store-App angezeigt wird, mit C++, C# oder Visual Basic erstellt werden. Obwohl jedes DependencyObject im primären UI-Thread erstellt werden muss, kann mithilfe eines Verteilerverweises aus anderen Threads auf die Objekte zugegriffen werden, indem Dispatcher aufgerufen wird.

Die Threadingaspekte von DependencyObject sind relevant , da dies im Allgemeinen bedeutet, dass nur Code, der im UI-Thread ausgeführt wird, den Wert einer Abhängigkeitseigenschaft lesen oder sogar ändern kann. Threadingprobleme können in typischem Benutzeroberflächencode, der asynchrone Muster und Hintergrundarbeitsthreads richtig verwendet, normalerweise vermieden werden. In der Regel kommt es nur dann zu DependencyObject-bezogenen Threadingproblemen, wenn Sie eigene DependencyObject-Typen definieren und versuchen, sie für Datenquellen oder andere Szenarien zu verwenden, in denen eine DependencyObject-Klasse nicht unbedingt geeignet ist.

Beispiele

In diesem Beispiel werden eine von DependencyObject abgeleitete Klasse und eine angefügte Eigenschaft zusammen mit dem Bezeichnerfeld definiert. Das Szenario für diese Klasse sieht vor, dass sie eine Dienstklasse ist, die eine angefügte Eigenschaft deklariert, die von anderen Benutzeroberflächenelementen in XAML festgelegt werden kann. Der Dienst verwendet zur Laufzeit potenziell die Werte der angefügten Eigenschaften dieser Benutzeroberflächenelemente.


    public abstract class AquariumServices : DependencyObject
    {
        public enum Bouyancy {Floats,Sinks,Drifts}

        public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
          "Bouyancy",
          typeof(Bouyancy),
          typeof(AquariumServices),
          new PropertyMetadata(Bouyancy.Floats)
        );
        public static void SetBouyancy(DependencyObject element, Bouyancy value)
        {
            element.SetValue(BouyancyProperty, value);
        }
        public static Bouyancy GetBouyancy(DependencyObject element)
        {
            return (Bouyancy)element.GetValue(BouyancyProperty);
        }
    }


Anforderungen

Mindestens unterstützter Client

Windows 8 [Nur Windows Store-Apps]

Mindestens unterstützter Server

Windows Server 2012 [Nur Windows Store-Apps]

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

DependencyProperty
Übersicht über Abhängigkeitseigenschaften
Benutzerdefinierte Abhängigkeitseigenschaften
Benutzerdefinierte angefügte Eigenschaften
Übersicht über angefügte Eigenschaften

 

 

Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.