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.Gets or sets a value that indicates whether a dependency property potentially affects the measure pass during layout engine operations.

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

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.true if the dependency property on which this metadata exists potentially affects the measure pass; otherwise, false. O padrão é false.The default is 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.The metadata has already been applied to a dependency property operation, so that metadata is sealed and properties of the metadata cannot be set.

Exemplos

O exemplo a seguir obtém os metadados padrão de vários campos de propriedade de dependência, consulta o valor FrameworkPropertyMetadata de várias propriedades nele e usa as informações para popular uma tabela para implementar um "navegador de metadados".The following example obtains the default metadata from various dependency property fields, queries the value of various FrameworkPropertyMetadata properties on it, and uses the information to populate a table to implement a "metadata browser".

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

FrameworkElemente FrameworkContentElement incluem uma implementação do OnPropertyChanged que monitora alterações de valores efetivos em todas as propriedades de dependência existentes em um elemento.FrameworkElement and FrameworkContentElement include an implementation of OnPropertyChanged that monitors effective value changes to all dependency properties that exist on an element. Como parte dessa lógica, as propriedades de dependência que alteram o valor efetivo e AffectsMeasure têm metadados true com definido como iniciarão uma solicitação adiada para invalidar os elementos visuais desse elemento.As part of that logic, dependency properties that change effective value and have metadata with AffectsMeasure set to true will initiate a deferred request to invalidate the visuals for that element. Como essa implementação no nível de estrutura do WPF já está em vigor, você normalmente não precisa procurar Propriedades de dependência com AffectsMeasure a menos que esteja substituindo substancialmente ou modificando o comportamento de layout no nível de estrutura do WPF.Because this WPF framework-level implementation is already in place, you typically do not need to look for dependency properties with AffectsMeasure unless you are substantially replacing or modifying the WPF framework-level layout behavior.

Implementações personalizadas OnPropertyChanged podem optar por ter comportamento semelhante para alterações de propriedade de truedependência onde AffectsMeasure é.Custom OnPropertyChanged implementations might choose to have similar behavior for dependency property changes where AffectsMeasure is true.

As propriedades em classes derivadas PropertyMetadata do normalmente são definidas no modelo de objeto como leitura/gravação.Properties on derived classes of PropertyMetadata are typically defined in the object model as read-write. Isso é para que eles possam ser ajustados após a inicialização da instância.This is so they can be adjusted after initialization of the instance. No entanto, depois que os metadados são consumidos como Registerparte AddOwnerde uma OverrideMetadatachamada para, ou, o sistema de propriedades lacrará que a instância de metadados e as propriedades que transmitem as especificidades dos metadados agora são consideradas imutáveis.However, after the metadata is consumed as part of a call to Register, AddOwner, or OverrideMetadata, the property system will seal that metadata instance and properties that convey the specifics of the metadata are now considered immutable. A tentativa de definir essa propriedade após IsSealed está true nessa instância de metadados gerará uma exceção.Attempting to set this property after IsSealed is true on this metadata instance will raise an exception.

Uso de texto XAMLXAML Text Usage

Os membros dessa classe normalmente não são usados no XAMLXAML.Members of this class are not typically used in XAMLXAML.

Aplica-se a

Veja também