FrameworkPropertyMetadata.AffectsArrange Propriedade

Definição

Recebe ou define um valor que indica se uma propriedade de dependência afeta potencialmente a passagem de arranjo durante as operações do motor de layout.

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

Valor de Propriedade

true se a propriedade de dependência sobre a qual estes metadados existem potencialmente afetar a passagem do arranjo; caso contrário, false. A predefinição é false.

Exceções

Os metadados já foram aplicados a uma operação de propriedade de dependência, pelo que os metadados ficam selados e as propriedades dos metadados não podem ser definidas.

Exemplos

O exemplo seguinte obtém os metadados predefinidos de vários campos de propriedades de dependência, consulta o valor de várias FrameworkPropertyMetadata propriedades neles e utiliza a informação para preencher uma tabela e implementar um "navegador de metadados".

pm = dp.GetMetadata(dp.OwnerType);
pm = dp.GetMetadata(dp.OwnerType)
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";
}
Dim fpm As FrameworkPropertyMetadata = TryCast(pm, FrameworkPropertyMetadata)
If fpm IsNot Nothing Then
    AffectsArrange.Text = If((fpm.AffectsArrange), "Yes", "No")
    AffectsMeasure.Text = If((fpm.AffectsMeasure), "Yes", "No")
    AffectsRender.Text = If((fpm.AffectsRender), "Yes", "No")
        [Inherits].Text = If((fpm.Inherits), "Yes", "No")
    IsDataBindingAllowed.Text = If((fpm.IsDataBindingAllowed), "Yes", "No")
    BindsTwoWayByDefault.Text = If((fpm.BindsTwoWayByDefault), "Yes", "No")

Observações

FrameworkElement e FrameworkContentElement incluir uma implementação de OnPropertyChanged que monitorize as alterações de valor efetivo de todas as propriedades de dependência que existem num elemento. Como parte dessa lógica, propriedades de dependência que alteram o valor efetivo e têm metadados definidos AffectsArrange para true iniciarão um pedido diferido para invalidar os visuais desse elemento (uma chamada para InvalidateArrange). Como esta implementação WPF ao nível da framework já está implementada, normalmente não é necessário procurar propriedades de dependência com AffectsArrange a menos que esteja a substituir ou modificar substancialmente o comportamento WPF layout ao nível da framework.

Implementações personalizadas OnPropertyChanged podem optar por ter um comportamento semelhante para alterações de propriedades de dependência onde AffectsArrange é true.

As propriedades nas classes derivadas de PropertyMetadata são tipicamente definidas no modelo de objetos como leitura-escrita. Isto serve para que possam ser ajustados após a inicialização da instância. No entanto, depois de os metadados serem consumidos como parte de uma chamada a Register, AddOwner, ou OverrideMetadata, o sistema de propriedades selará essa instância de metadados e as propriedades que transmitem as especificidades dos metadados são agora consideradas imutáveis. Tentar definir esta propriedade depois IsSealed de estar true nesta instância de metadados irá gerar uma exceção.

Utilização de Texto XAML

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

Aplica-se a

Ver também