DependencyObject Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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) |