FrameworkPropertyMetadata.AffectsArrange Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que indica se uma propriedade de dependência potencialmente afeta a passagem de organização durante as operações do mecanismo 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 da propriedade
true se a propriedade de dependência na qual esses metadados existem potencialmente afetará a passagem de organização; 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.
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".
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")
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 AffectsArrange para true iniciarão uma solicitação adiada para invalidar os visuais desse elemento (uma chamada para InvalidateArrange). 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 AffectsArrange , a menos que você esteja substituindo ou modificando substancialmente o comportamento de layout no nível da estrutura do WPF.
As implementações personalizadas OnPropertyChanged podem optar por ter um comportamento semelhante para alterações de propriedade de dependência.AffectsArrangetrue
As propriedades em classes derivadas são PropertyMetadata normalmente 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.