Partilhar via


DependencyObject Classe

Definição

Representa um objeto que participa do sistema de propriedade de dependência.

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
Herança
DependencyObject
Derivado
Atributos

Exemplos

O exemplo a seguir deriva da criação de DependencyObject uma nova classe abstrata. Em seguida, a classe registra uma propriedade anexada e inclui membros de suporte para essa propriedade anexada.

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

Comentários

A DependencyObject classe habilita serviços do sistema de propriedades Windows Presentation Foundation (WPF) em suas muitas classes derivadas.

A função principal do sistema de propriedades é calcular os valores das propriedades e fornecer notificação do sistema sobre valores que foram alterados. Outra classe chave que participa do sistema de propriedades é DependencyProperty. DependencyProperty permite o registro de propriedades de dependência no sistema de propriedades e fornece identificação e informações sobre cada propriedade de dependência, enquanto DependencyObject como uma classe base permite que os objetos usem as propriedades de dependência.

DependencyObject serviços e características incluem o seguinte:

  • Suporte à hospedagem de propriedade de dependência. Registre uma propriedade de dependência chamando o Register método e armazenando o valor retornado do método como um campo estático público em sua classe.

  • Suporte à hospedagem de propriedade anexada. Registre uma propriedade anexada chamando o RegisterAttached método e armazenando o valor retornado do método como um campo público estático somente leitura em sua classe. (Também há requisitos de membro adicionais; observe que isso representa uma implementação específica do WPF para propriedades anexadas. Para obter detalhes, consulte Visão geral das propriedades anexadas.) Em seguida, sua propriedade anexada pode ser definida em qualquer classe que deriva de DependencyObject.

  • Obter, definir e limpar métodos utilitários para valores de quaisquer propriedades de dependência existentes no DependencyObject.

  • Metadados, coagir suporte a valor, notificação de alteração de propriedade e substituir retornos de chamada para propriedades de dependência ou propriedades anexadas. Além disso, a DependencyObject classe facilita os metadados de propriedade por proprietário para uma propriedade de dependência.

  • Uma classe base comum para classes derivadas de ContentElement, Freezableou Visual. (UIElement, outra classe de elemento base, tem uma hierarquia de classe que inclui Visual.)

Construtores

DependencyObject()

Inicializa uma nova instância da classe DependencyObject.

Propriedades

DependencyObjectType

Obtém o DependencyObjectType que encapsula o tipo CLR dessa instância.

Dispatcher

Obtém o Dispatcher ao qual este DispatcherObject está associado.

(Herdado de DispatcherObject)
IsSealed

Obtém um valor que indica se essa instância está validada no momento (somente leitura).

Métodos

CheckAccess()

Determina se o thread de chamada tem acesso a este DispatcherObject.

(Herdado de DispatcherObject)
ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um identificador DependencyProperty.

ClearValue(DependencyPropertyKey)

Limpa o valor local de uma propriedade somente leitura. A propriedade a ser limpa é especificada por um DependencyPropertyKey.

CoerceValue(DependencyProperty)

Converte o valor da propriedade de dependência especificada. Isso é feito invocando qualquer função CoerceValueCallback especificada nos metadados de propriedade para a propriedade de dependência, visto que ela existe na chamada a DependencyObject.

Equals(Object)

Determina se um DependencyObject fornecido é equivalente ao DependencyObject atual.

GetHashCode()

Obtém o código hash para esse DependencyObject.

GetLocalValueEnumerator()

Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente nessa DependencyObject.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência nessa instância de um DependencyObject.

InvalidateProperty(DependencyProperty)

Reavalia o valor efetivo para a propriedade de dependência especificada.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invocado sempre que o valor efetivo de qualquer propriedade de dependência nesse DependencyObject for atualizado. A propriedade de dependência específica que mudou é relatada os dados do evento.

ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, local, se houver.

SetCurrentValue(DependencyProperty, Object)

Define o valor da propriedade de dependência sem alterar a origem do valor.

SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência, especificada pelo identificador da propriedade de dependência.

SetValue(DependencyPropertyKey, Object)

Define o valor de uma propriedade de dependência somente leitura, especificada pelo identificador DependencyPropertyKey da propriedade de dependência.

ShouldSerializeProperty(DependencyProperty)

Retorna um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
VerifyAccess()

Impõe que o thread de chamada tenha acesso a este DispatcherObject.

(Herdado de DispatcherObject)

Aplica-se a

Confira também