DependencyObject, classe
Réduire la table des matières
Développer la table des matières

DependencyObject Class

Représente un objet qui participe au système de propriétés de dépendance. DependencyObject est la classe de base immédiate de nombreuses classes importantes liées à l'interface utilisateur, telles que UIElement, Geometry, FrameworkTemplate, Style et ResourceDictionary. Pour plus d'informations sur la façon dont DependencyObject prend en charge des propriétés de dépendance, consultez Vue d'ensemble des propriétés de dépendance.

Héritage

Object
  DependencyObject

Syntaxe


public class DependencyObject : Object

Attributs

MarshalingBehaviorAttribute(Agile)
ThreadingAttribute(Both)
VersionAttribute(NTDDI_WIN8)
WebHostHiddenAttribute()

Membres

DependencyObjectClasse comporte les types de membres suivants :

Constructeurs

DependencyObjectClasse comporte les constructeurs suivants.

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

 

Méthodes

The DependencyObject Classe comporte les méthodes suivantes. Il hérite également des méthodes de Object Classe.

MéthodeDescription
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.

 

Propriétés

Le DependencyObjectClasse contient les propriétés suivantes.

PropriétéType d’accèsDescription

Dispatcher

en lecture seuleGets the CoreDispatcher that this object is associated with.

 

Remarques

La classe DependencyObject active les services de système de propriétés de dépendance sur ses nombreuses classes dérivées. Pour plus d'informations sur le concept de propriété de dépendance, consultez Vue d'ensemble des propriétés de dépendance.

La fonction principale du système de propriétés de dépendance consiste à calculer les valeurs de propriétés et à informer le système lorsque les valeurs ont été modifiées. Une autre classe principale qui participe au système de propriétés de dépendance est DependencyProperty. DependencyProperty active l'inscription des propriétés de dépendance dans le système de propriétés, alors que DependencyObject comme une classe de base permet aux objets d'utiliser et de définir les propriétés de dépendance.

Voici certains services et fonctionnalités connus que DependencyObject fournit ou prend en charge :

  • Prise en charge de l'hébergement des propriétés de dépendance.
  • Prise en charge de l'hébergement des propriétés de dépendance personnalisées. Vous enregistrez une propriété de dépendance en appelant la méthode Register et en stockant la valeur de retour de la méthode en tant que propriété statique publique dans votre classe DependencyObject.
  • Prise en charge de l'hébergement des propriétés jointes.
  • Prise en charge de l'hébergement des propriétés jointes personnalisées. Vous enregistrez une propriété de dépendance pour l'utilisation de celle-ci en appelant la méthode RegisterAttached et en stockant la valeur de retour de la méthode en tant que propriété statique publique dans votre classe.
  • Méthodes d'utilitaire Get et Set pour les valeurs des propriétés de dépendance existant sur DependencyObject.
  • Utilitaire supplémentaire pour l'examen des valeurs de métadonnées ou de propriétés.
  • Dispatcher pour les scénarios de threads avancés.
  • Prise en charge de l'application de styles et de la liaison de données de base, en permettant la définition de propriétés en tant qu'expressions à évaluer ultérieurement dans la durée de vie d'un objet. Ces concepts sont présentés en détail dans Vue d'ensemble des propriétés de dépendance. Consultez également Liaison de données en XAML.

DependencyObject et threads

Toutes les instances DependencyObject doivent être créés sur le thread d'interface utilisateur associé à Window en cours, qui est affiché par une application Windows Store générée pour Windows à l'aide de C++, C# ou Visual Basic. Bien que chaque DependencyObject doive être créé sur le thread d'interface utilisateur principal, les objets sont accessibles à l'aide d'une référence de répartiteur à partir d'autres threads, en appelant Dispatcher.

Les aspects de thread de DependencyObject sont appropriés car cela signifie généralement que seul le code qui s'exécute sur le thread d'interface utilisateur peut modifier ou même lire la valeur d'une propriété de dépendance. Les problèmes liés aux threads peuvent en général être évités dans le code d'interface utilisateur classique qui utilise correctement les modèles asynchrones et les threads de travail en arrière-plan. Vous ne rencontrez généralement que des problèmes de threads liés à DependencyObject si vous définissez vos propres types DependencyObject et que vous tentez de les utiliser pour les sources de données ou autres scénarios où un DependencyObject n'est pas nécessairement approprié.

Exemples

Cet exemple définit une classe qui dérive de DependencyObject, et définit une propriété jointe et le champ d'identificateur. Pour cette classe, le scénario est que c'est une classe de service qui déclare une propriété jointe que d'autres éléments de l'interface utilisateur peuvent installer en XAML. Le service agit éventuellement sur les valeurs de propriété jointe sur ces éléments de l'interface utilisateur au moment de l'exécution.


    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);
        }
    }


Configuration requise

Client minimal pris en charge

Windows 8 [Applications du Windows Store uniquement]

Serveur minimal pris en charge

Windows Server 2012 [Applications du Windows Store uniquement]

Espace de noms

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

Métadonnées

Windows.winmd

Voir aussi

DependencyProperty
Vue d'ensemble des propriétés de dépendance
Propriétés de dépendance personnalisées
Propriétés jointes personnalisées
Vue d'ensemble des propriétés jointes

 

 

Afficher:
© 2016 Microsoft