Sdílet prostřednictvím


DependencyObject Třída

Definice

Představuje objekt, který se účastní systému vlastností závislostí.

public ref class DependencyObject : System::Windows::Threading::DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
type DependencyObject = class
    inherit DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
    inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject
Dědičnost
DependencyObject
Odvozené
Atributy

Příklady

Následující příklad vychází z DependencyObject vytvoření nové abstraktní třídy. Třída pak zaregistruje připojenou vlastnost a zahrnuje členy podpory pro danou připojenou vlastnost.

public abstract class AquariumObject3 : DependencyObject
{
    public enum Bouyancy
    {
        Floats,
        Sinks,
        Drifts
    }
    public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
      "Bouyancy",
      typeof(Bouyancy),
      typeof(AquariumObject3),
      new FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange),
      new ValidateValueCallback(ValidateBouyancy)
    );
    public static void SetBouyancy(UIElement element, Bouyancy value)
    {
        element.SetValue(BouyancyProperty, value);
    }
    public static Bouyancy GetBouyancy(UIElement element)
    {
        return (Bouyancy)element.GetValue(BouyancyProperty);
    }
    private static bool ValidateBouyancy(object value)
    {
        Bouyancy bTest = (Bouyancy) value;
        return (bTest == Bouyancy.Floats || bTest == Bouyancy.Drifts || bTest==Bouyancy.Sinks);
    }
    public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register(
      "IsDirty",
      typeof(Boolean),
      typeof(AquariumObject3)
    );
}
Public MustInherit Class AquariumObject3
    Inherits DependencyObject
    Public Enum Bouyancy
        Floats
        Sinks
        Drifts
    End Enum
    Public Shared ReadOnly BouyancyProperty As DependencyProperty = DependencyProperty.RegisterAttached("Bouyancy", GetType(Bouyancy), GetType(AquariumObject3), New FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange), New ValidateValueCallback(AddressOf ValidateBouyancy))
    Public Shared Sub SetBouyancy(ByVal element As UIElement, ByVal value As Bouyancy)
        element.SetValue(BouyancyProperty, value)
    End Sub
    Public Shared Function GetBouyancy(ByVal element As UIElement) As Bouyancy
        Return CType(element.GetValue(BouyancyProperty), Bouyancy)
    End Function
    Private Shared Function ValidateBouyancy(ByVal value As Object) As Boolean
        Dim bTest As Bouyancy = CType(value, Bouyancy)
        Return (bTest = Bouyancy.Floats OrElse bTest = Bouyancy.Drifts OrElse bTest = Bouyancy.Sinks)
    End Function
    Public Shared ReadOnly IsDirtyProperty As DependencyProperty = DependencyProperty.Register("IsDirty", GetType(Boolean), GetType(AquariumObject3))
End Class

Poznámky

Třída DependencyObject umožňuje Windows Presentation Foundation (WPF) systémové služby systému u mnoha odvozených tříd.

Primární funkcí systému vlastností je výpočet hodnot vlastností a poskytnutí systémových oznámení o hodnotách, které se změnily. Další klíčovou třídou, která se účastní systému vlastností, je DependencyProperty. DependencyProperty umožňuje registraci vlastností závislostí do systému vlastností vlastností a poskytuje identifikaci a informace o každé vlastnosti závislostí, zatímco DependencyObject jako základní třída umožňuje objektům používat vlastnosti závislosti.

DependencyObject mezi služby a charakteristiky patří:

  • Podpora hostování vlastností závislostí Vlastnost závislostí zaregistrujete voláním Register metody a uložíte návratovou hodnotu metody jako veřejné statické pole ve třídě.

  • Podpora hostování připojených vlastností Zaregistrujete připojenou vlastnost voláním RegisterAttached metody a uložíte návratovou hodnotu metody jako veřejné statické pole jen pro čtení ve vaší třídě. (Existují také další požadavky na členy; všimněte si, že to představuje konkrétní implementaci WPF pro připojené vlastnosti. Podrobnosti najdete v tématu Přehled připojených vlastností.) Připojenou vlastnost lze pak nastavit na libovolnou třídu, která je odvozena od DependencyObject.

  • Získejte, nastavte a vymažte metody nástroje pro hodnoty všech vlastností závislostí, které existují na .DependencyObject

  • Metadata, podpora hodnot spoluvytvářování, oznámení o změně vlastnosti vlastnosti závislosti a přepsání zpětných volání pro vlastnosti závislostí nebo připojené vlastnosti. Třída DependencyObject také usnadňuje metadata vlastnosti pro vlastníka pro vlastnost závislosti.

  • Společná základní třída tříd odvozených z ContentElement, Freezablenebo Visual. (UIElementjiná základní třída elementu má hierarchii tříd, která obsahuje Visual.)

Konstruktory

DependencyObject()

Inicializuje novou instanci DependencyObject třídy.

Vlastnosti

DependencyObjectType

DependencyObjectType Získá ten, který zabalí typ CLR této instance.

Dispatcher

Získá to DispatcherObject je přidruženoDispatcher.

(Zděděno od DispatcherObject)
IsSealed

Získá hodnotu, která označuje, zda je tato instance aktuálně zapečetěna (jen pro čtení).

Metody

CheckAccess()

Určuje, zda má volající vlákno přístup k tomuto DispatcherObject.

(Zděděno od DispatcherObject)
ClearValue(DependencyProperty)

Vymaže místní hodnotu vlastnosti. Vlastnost, která se má vymazat, je určena identifikátorem DependencyProperty .

ClearValue(DependencyPropertyKey)

Vymaže místní hodnotu vlastnosti jen pro čtení. Vlastnost, která se má vymazat, je určena parametrem DependencyPropertyKey.

CoerceValue(DependencyProperty)

Převede hodnotu zadané vlastnosti závislosti. To se provádí vyvoláním jakékoli CoerceValueCallback funkce zadané v metadatech vlastností pro vlastnost závislosti, protože existuje ve volání DependencyObject.

Equals(Object)

Určuje, zda je poskytnutá DependencyObject hodnota ekvivalentní aktuálnímu DependencyObject.

GetHashCode()

Získá hash kód pro tento DependencyObject.

GetLocalValueEnumerator()

Vytvoří specializovaný enumerátor pro určení, které vlastnosti závislostí mají místně nastavené hodnoty na tomto DependencyObject.

GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
GetValue(DependencyProperty)

Vrátí aktuální efektivní hodnotu vlastnosti závislosti na této instanci objektu DependencyObject.

InvalidateProperty(DependencyProperty)

Znovu vyhodnotí efektivní hodnotu pro zadanou vlastnost závislosti.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Vyvolá se při každé aktualizaci efektivní hodnoty jakékoli vlastnosti závislosti na této DependencyObject vlastnosti. Specifická vlastnost závislostí, která se změnila, je hlášena v datech události.

ReadLocalValue(DependencyProperty)

Vrátí místní hodnotu vlastnosti závislosti, pokud existuje.

SetCurrentValue(DependencyProperty, Object)

Nastaví hodnotu vlastnosti závislosti beze změny zdroje hodnot.

SetValue(DependencyProperty, Object)

Nastaví místní hodnotu vlastnosti závislosti určenou jeho identifikátorem vlastnosti závislosti.

SetValue(DependencyPropertyKey, Object)

Nastaví místní hodnotu vlastnosti závislosti jen pro čtení určenou DependencyPropertyKey identifikátorem vlastnosti závislosti.

ShouldSerializeProperty(DependencyProperty)

Vrátí hodnotu, která označuje, zda serializační procesy mají serializovat hodnotu pro zadanou vlastnost závislostí.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
VerifyAccess()

Vynucuje, aby volající vlákno má k tomuto DispatcherObjectpřístupu přístup .

(Zděděno od DispatcherObject)

Platí pro

Viz také