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 je odvozen od 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 systémovým službám systému Windows Presentation Foundation (WPF (Windows Presentation Foundation)) v mnoha odvozených třídách.
Primární funkcí systému vlastností je výpočet hodnot vlastností a poskytnutí systémových oznámení o změněných hodnotách. Další klíčovou třídou, která se účastní systému vlastností, je DependencyProperty. DependencyProperty umožňuje registraci vlastností závislostí do systému vlastností a poskytuje identifikaci a informace o každé vlastnosti závislosti, 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ávislosti zaregistrujete voláním Register metody a uložením návratové hodnoty metody jako veřejného statického pole ve vaší třídě.
Podpora hostování připojených vlastností Připojenou vlastnost zaregistrujete voláním RegisterAttached metody a uložením návratové hodnoty metody jako veřejného statického pole jen pro čtení ve vaší třídě. (Existují také další členské požadavky. Všimněte si, že představuje WPF (Windows Presentation Foundation) konkrétní implementaci připojených vlastností. Podrobnosti najdete v tématu Attached – přehled vlastností.) Připojenou vlastnost lze pak nastavit pro libovolnou třídu, která je odvozena z DependencyObject.
Získejte, nastavte a vymažte metody nástroje pro hodnoty všech vlastností závislostí, které existují v objektu DependencyObject.
Metadata, podpora hodnot převodu, oznámení o změně vlastnosti vlastnosti a přepsání zpětných volání pro vlastnosti závislosti nebo připojené vlastnosti. DependencyObject Třída také usnadňuje metadata vlastností pro jednotlivé vlastníky pro vlastnost závislosti.
Společná základní třída tříd odvozených od ContentElement, Freezablenebo Visual. (UIElementdalší základní třída elementu má hierarchii tříd, která obsahuje Visual.)
Konstruktory
| Name | Description |
|---|---|
| DependencyObject() |
Inicializuje novou instanci DependencyObject třídy. |
Vlastnosti
| Name | Description |
|---|---|
| DependencyObjectType |
DependencyObjectType Získá ten, který zabalí typ CLR této instance. |
| Dispatcher |
Dispatcher Získá toto DispatcherObject je přidružené. (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
| Name | Description |
|---|---|
| CheckAccess() |
Určuje, zda volající vlákno má 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á má být vymazána, je určena parametrem DependencyPropertyKey. |
| CoerceValue(DependencyProperty) |
Převede hodnotu zadané vlastnosti závislosti. Toho se dosahuje 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ávislosti mají místně nastavené hodnoty na tomto DependencyObject. |
| GetType() |
Získá Type aktuální instance. (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ří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Vyvolána vždy, když byla aktualizována efektivní hodnota jakékoli vlastnosti závislosti na této DependencyObject vlastnosti. Konkrétní vlastnost závislosti, 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 jejího 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 identifikátorem DependencyPropertyKey vlastnosti závislosti. |
| ShouldSerializeProperty(DependencyProperty) |
Vrátí hodnotu, která určuje, zda procesy serializace mají serializovat hodnotu pro zadanou vlastnost závislosti. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| VerifyAccess() |
Vynucuje, že volající vlákno má přístup k tomuto DispatcherObject. (Zděděno od DispatcherObject) |