Compartir vía


FrameworkPropertyMetadata.AffectsParentMeasure Propiedad

Definición

Obtiene o establece un valor que indica si una propiedad de dependencia afecta potencialmente al paso de medición del diseño de su elemento principal durante las operaciones del motor de diseño.

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 de propiedad

true si la propiedad de dependencia en la que existen estos metadatos puede afectar al paso de medida específicamente en su elemento primario; de lo contrario, false. De manera predeterminada, es false.

Excepciones

Los metadatos ya se aplicaron a una operación de propiedad de dependencia, por lo que están sellados y no se pueden establecer sus propiedades.

Comentarios

FrameworkElement e FrameworkContentElement incluyen una implementación de OnPropertyChanged que supervisa los cambios de valor efectivos en todas las propiedades de dependencia que existen en un elemento. Como parte de esa lógica, las propiedades de dependencia que cambian el valor efectivo y tienen metadatos con AffectsParentMeasure establecido true en iniciarán una solicitud diferida para invalidar los objetos visuales del elemento primario. Dado que esta implementación de nivel de marco de WPF ya está en vigor, normalmente no es necesario buscar propiedades de dependencia con AffectsParentMeasure a menos que esté reemplazando o modificando sustancialmente el comportamiento de diseño de nivel de marco de WPF.

Por lo general, no es necesario notificar los cambios de una FrameworkElement propiedad a un elemento primario mediante AffectsParentMeasure porque el propio elemento ya tendría su propio AffectsMeasure como true. Normalmente es suficiente, ya que los cambios en el elemento secundario suelen iniciar un paso de medida primario cuando corresponda. AffectsParentMeasure a veces se usa para una FrameworkContentElement clase derivada. En este caso, el elemento secundario establece una propiedad, pero una FrameworkContentElement clase derivada no controla su propia representación. La representación se controla mediante un FrameworkElement elemento primario que actúa como host de contenido. Por ejemplo, un cambio en el valor de la Paragraph.KeepWithNext propiedad por un elemento secundario invalida la medida del elemento primario, ya que el espaciado relativo de los párrafos podría cambiar y podría aumentar o disminuir el tamaño del host de contenido. Por lo tanto, la Paragraph.KeepWithNext propiedad tiene metadatos donde AffectsParentMeasure es true.

Los elementos host de contenido también buscan con frecuencia cambios en las propiedades de dependencia donde AffectsParentMeasure es true, como parte de la lógica de representación del host de contenido. Por ejemplo, el TextBox elemento debe responder a ciertos cambios dentro del texto que podrían requerir que se cambie el cuadro de límite del TextBox propio .

Las implementaciones personalizadas OnPropertyChanged pueden optar por tener un comportamiento similar para los cambios de propiedad de dependencia, donde AffectsParentMeasure es true.

Las propiedades de cualquier clase derivada de PropertyMetadata se definen normalmente en el modelo de objetos como lectura y escritura. Esto es para que se puedan ajustar después de la inicialización de la instancia. Sin embargo, después de que los metadatos se consuman como parte de una llamada a Register, AddOwnero OverrideMetadata, el sistema de propiedades sellará que la instancia de metadatos y las propiedades que transmiten los detalles de los metadatos ahora se consideran inmutables. Si intenta establecer esta propiedad después IsSealed de que se encuentra true en esta instancia de metadatos, se producirá una excepción.

Uso de texto XAML

Los miembros de esta clase no se suelen usar en XAML.

Se aplica a

Consulte también