FrameworkPropertyMetadata.AffectsMeasure Propriedade

Definição

Obtém ou define um valor que indica se uma propriedade de dependência potencialmente afeta a passagem de medição durante operações de mecanismo de layout.

C#
public bool AffectsMeasure { get; set; }

Valor da propriedade

true se a propriedade de dependência na qual esses metadados existem potencialmente afetar a passagem de medida; caso contrário, false. O padrão é false.

Exceções

Os metadados já foram aplicados à operação de propriedade de dependência, portanto os metadados estão selados e as propriedades dos metadados não podem ser definidas.

Exemplos

O exemplo a seguir obtém os metadados padrão de vários campos de propriedade de dependência, consulta o valor de várias FrameworkPropertyMetadata propriedades nele e usa as informações para preencher uma tabela para implementar um "navegador de metadados".

C#
pm = dp.GetMetadata(dp.OwnerType);
C#
FrameworkPropertyMetadata fpm = pm as FrameworkPropertyMetadata;
if (fpm!=null) {
    AffectsArrange.Text = (fpm.AffectsArrange) ? "Yes" : "No";
    AffectsMeasure.Text = (fpm.AffectsMeasure) ? "Yes" : "No";
    AffectsRender.Text = (fpm.AffectsRender) ? "Yes" : "No";
    Inherits.Text = (fpm.Inherits) ? "Yes" : "No";
    IsDataBindingAllowed.Text = (fpm.IsDataBindingAllowed) ? "Yes" : "No";
    BindsTwoWayByDefault.Text = (fpm.BindsTwoWayByDefault) ? "Yes" : "No";
}

Comentários

FrameworkElement e FrameworkContentElement incluem uma implementação de OnPropertyChanged que monitora alterações de valor efetivas em todas as propriedades de dependência que existem em um elemento . Como parte dessa lógica, as propriedades de dependência que alteram o valor efetivo e têm metadados com AffectsMeasure definido como true iniciarão uma solicitação adiada para invalidar os visuais desse elemento. Como essa implementação no nível da estrutura do WPF já está em vigor, normalmente você não precisa procurar propriedades de dependência com AffectsMeasure , a menos que você esteja substituindo ou modificando substancialmente o comportamento de layout no nível da estrutura do WPF.

Implementações personalizadas OnPropertyChanged podem optar por ter um comportamento semelhante para alterações de propriedade de dependência em que AffectsMeasure é true.

As propriedades em classes derivadas de PropertyMetadata normalmente são definidas no modelo de objeto como leitura-gravação. Isso é para que eles possam ser ajustados após a inicialização da instância. No entanto, depois que os metadados forem consumidos como parte de uma chamada para Register, AddOwnerou OverrideMetadata, o sistema de propriedades selará essa instância de metadados e as propriedades que transmitem as especificidades dos metadados agora são consideradas imutáveis. Tentar definir essa propriedade depois IsSealed de estar true nessa instância de metadados gerará uma exceção.

Uso de texto XAML

Os membros dessa classe normalmente não são usados em XAML.

Aplica-se a

Produto Versões
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Confira também