Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

DependencyObject (Clase)

Representa un objeto que participa en el sistema de propiedades de dependencia.

Espacio de nombres:  System.Windows
Ensamblado:  WindowsBase (en WindowsBase.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[NameScopePropertyAttribute("NameScope", typeof(NameScope))]
public class DependencyObject : DispatcherObject
<DependencyObject .../>

El tipo DependencyObject expone los siguientes miembros.

  NombreDescripción
Método públicoDependencyObjectInicializa una nueva instancia de la clase DependencyObject.
Arriba

  NombreDescripción
Propiedad públicaDependencyObjectTypeObtiene el objeto DependencyObjectType que ajusta el tipo CLR de esta instancia. 
Propiedad públicaDispatcherObtiene el objeto Dispatcher al que está asociado DispatcherObject. (Se hereda de DispatcherObject).
Propiedad públicaIsSealedObtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura).
Arriba

  NombreDescripción
Método públicoCheckAccess Determina si el subproceso de la llamada tiene acceso a este DispatcherObject. (Se hereda de DispatcherObject).
Método públicoClearValue(DependencyProperty) Borra el valor local de una propiedad. La propiedad que se borrará se especifica mediante un identificador de DependencyProperty.
Método públicoClearValue(DependencyPropertyKey) Borra el valor local de una propiedad de sólo lectura. La propiedad que se borrará es especificada por DependencyPropertyKey.
Método públicoCoerceValue Fuerza el valor de propiedad de la dependencia especificada. Esto se logra a cualquier función de CoerceValueCallback especificada en los metadatos de propiedad para la propiedad de dependencia tal como existe en el objeto DependencyObject que llama.
Método públicoEquals Determina si un DependencyObject proporcionado es equivalente a DependencyObject actual. (Invalida a Object.Equals(Object)).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Se hereda de Object).
Método públicoGetHashCode Obtiene un código hash para este DependencyObject. (Invalida a Object.GetHashCode()).
Método públicoGetLocalValueEnumeratorCrea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject.
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoGetValue Devuelve el valor efectivo actual de propiedad de dependencia en esta instancia de DependencyObject.
Método públicoInvalidatePropertyVuelve a evaluar el valor efectivo para la propiedad de dependencia especificada.
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoOnPropertyChanged Invocado siempre que el valor efectivo de cualquier propiedad de dependencia en este DependencyObject se haya actualizado. Se informa de la propiedad de dependencia concreta que cambió en los datos de evento.
Método públicoReadLocalValue Devuelve el valor local de propiedad de dependencia, si existe.
Método públicoSetCurrentValueEstablece el valor de una propiedad de dependencia sin cambiar el origen de su valor.
Método públicoSetValue(DependencyProperty, Object)Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia.
Método públicoSetValue(DependencyPropertyKey, Object)Establece el valor local de una propiedad de dependencia de sólo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia.
Método protegidoShouldSerializePropertyDevuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia proporcionada.
Método públicoToString Devuelve una cadena que representa al objeto actual. (Se hereda de Object).
Método públicoVerifyAccessExige que el subproceso de la llamada tenga acceso a DispatcherObject. (Se hereda de DispatcherObject).
Arriba

La clase DependencyObject habilita los servicios del sistema de propiedades de Windows Presentation Foundation (WPF) en sus numerosas clases derivadas.

La función primaria del sistema de propiedades es calcular los valores de propiedades y proporcionar la notificación del sistema sobre los valores que han cambiado. Otra clase clave que participa en el sistema de propiedades es DependencyPropertyDependencyProperty habilita el registro de propiedades de dependencia en el sistema de propiedades y proporciona identificación e información sobre cada propiedad de dependencia, mientras que DependencyObject como clase base permite a los objetos usar las propiedades de dependencia.

Los servicios y características de DependencyObject incluyen lo siguiente:

  • Compatibilidad con el host de propiedades de dependencia. Una propiedad de dependencia se registra mediante una llamada al método Register; el valor devuelto del método se almacena como un campo estático público en su clase.

  • Compatibilidad con el host de propiedades asociadas. Una propiedad asociada se registra mediante una llamada al método RegisterAttached; el valor devuelto del método se almacena como un campo estático público de sólo lectura en su clase. (Hay también requisitos de miembro adicionales; observe que esto representa una implementación concreta de WPF para las propiedades asociadas. Para obtener información detallada, vea Información general sobre propiedades asociadas. Su propiedad asociada se puede establecer a continuación en cualquier clase derivada de DependencyObject.

  • Obtenga, establezca y borre los métodos de utilidad para los valores de cualquier propiedad de dependencia que exista en DependencyObject.

  • Metadatos, compatibilidad con valores convertidos, notificación de cambios en propiedades e invalidación de devoluciones de llamada para propiedades de dependencia o propiedades asociadas. Asimismo, la clase DependencyObject facilita los metadatos de propiedad para cada propietario de una propiedad de dependencia.

  • Clase base común para las clases derivadas de ContentElement, Freezable o Visual. (UIElement, otra clase de elemento base, tiene una jerarquía de clases que incluye Visual.)

El ejemplo siguiente deriva de DependencyObject para crear una nueva clase abstracta. La clase registra a continuación una propiedad asociada e incluye miembros compatibles con la propiedad asociada.


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


.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Mostrar: