Compartilhar via


FrameworkPropertyMetadata.AffectsParentMeasure Propriedade

Definição

Obtém ou define um valor que indica se uma propriedade de dependência potencialmente afeta a passagem de medida do layout do elemento pai durante as operações do mecanismo de layout.

public:
 property bool AffectsParentMeasure { bool get(); void set(bool value); };
public bool AffectsParentMeasure { get; set; }
member this.AffectsParentMeasure : bool with get, set
Public Property AffectsParentMeasure As Boolean

Valor da propriedade

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

Exceções

Os metadados já foram aplicados a uma operação de propriedade de dependência, para que os metadados sejam lacrados e as propriedades dos metadados não possam ser definidas.

Comentários

FrameworkElement e FrameworkContentElement inclua uma implementação que OnPropertyChanged 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 definidos AffectsParentMeasure para true iniciarão uma solicitação adiada para invalidar os visuais do elemento pai. Como essa implementação de nível de estrutura do WPF já está em vigor, você normalmente não precisa procurar propriedades de dependência com AffectsParentMeasure , a menos que você esteja substituindo ou modificando substancialmente o comportamento de layout no nível da estrutura do WPF.

Geralmente, você não precisa relatar alterações de uma FrameworkElement propriedade para um elemento pai usando AffectsParentMeasure porque o elemento em si já teria o seu próprio AffectsMeasure como true. Isso geralmente é suficiente, pois as alterações no elemento filho geralmente iniciam uma medida pai quando apropriado. AffectsParentMeasure às vezes é usado para uma FrameworkContentElement classe derivada. Nesse caso, o elemento filho define uma propriedade, mas uma FrameworkContentElement classe derivada não controla sua própria renderização. A renderização é tratada por um FrameworkElement elemento pai que serve como o host de conteúdo. Por exemplo, uma alteração no valor da Paragraph.KeepWithNext propriedade por um elemento filho invalida a medida do pai, pois o espaçamento relativo dos parágrafos pode mudar e pode aumentar ou diminuir o tamanho do host de conteúdo. Portanto, a Paragraph.KeepWithNext propriedade tem metadados onde AffectsParentMeasure está true.

Os elementos de host de conteúdo também procuram frequentemente alterações nas propriedades de dependência, onde AffectsParentMeasure está true, como parte da lógica de renderização do host de conteúdo. Por exemplo, o TextBox elemento deve responder a determinadas alterações no texto que podem exigir que a caixa delimitadora do TextBox próprio seja alterada.

As implementações personalizadas OnPropertyChanged podem optar por ter um comportamento semelhante para alterações de propriedade de dependência.AffectsParentMeasuretrue

As propriedades em classes derivadas normalmente PropertyMetadata 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. A tentativa de 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 no XAML.

Aplica-se a

Confira também