FrameworkPropertyMetadata.AffectsParentMeasure Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui indique si une propriété de dépendance peut affecter la passe de mesure de la disposition de son élément parent durant les opérations du moteur de disposition.
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
Valeur de propriété
true
si la propriété de dépendance sur laquelle ces métadonnées existent affecte potentiellement le passage de mesure spécifiquement sur son élément parent ; sinon, false
. La valeur par défaut est false
.
Exceptions
Les métadonnées ont déjà été appliquées à une opération de propriété de dépendance : elles sont donc sealed et les propriétés des métadonnées ne peuvent pas être définies.
Remarques
FrameworkElement et FrameworkContentElement incluent une implémentation de OnPropertyChanged qui surveille les modifications de valeur effectives de toutes les propriétés de dépendance qui existent sur un élément. Dans le cadre de cette logique, les propriétés de dépendance qui modifient la valeur effective et dont les métadonnées AffectsParentMeasure sont définies true
sur lancent une demande différée pour invalider les visuels de l’élément parent. Étant donné que cette implémentation au niveau de l’infrastructure WPF est déjà en place, vous n’avez généralement pas besoin de rechercher des propriétés de dépendance avec AffectsParentMeasure , sauf si vous remplacez ou modifiez considérablement le comportement de disposition au niveau de l’infrastructure WPF.
En règle générale, vous n’avez pas besoin de signaler les modifications d’une FrameworkElement propriété à un élément parent à l’aide AffectsParentMeasure de , car l’élément lui-même aurait déjà son propre AffectsMeasure en tant que true
. Cela est généralement suffisant, car les modifications apportées à l’élément enfant déclenchent généralement une réussite de mesure parente lorsque cela est approprié.
AffectsParentMeasure est parfois utilisé pour une FrameworkContentElement classe dérivée. Dans ce cas, l’élément enfant définit une propriété, mais une FrameworkContentElement classe dérivée ne contrôle pas son propre rendu. Le rendu est géré par un FrameworkElement élément parent qui sert d’hôte de contenu. Par exemple, une modification de la valeur de la Paragraph.KeepWithNext propriété par un élément enfant invalide la mesure du parent, car l’espacement relatif des paragraphes peut changer et peut augmenter ou diminuer la taille de l’hôte de contenu. Par conséquent, la Paragraph.KeepWithNext propriété a des métadonnées où AffectsParentMeasure est true
.
Les éléments hôtes de contenu recherchent également fréquemment des modifications dans les propriétés de dépendance où AffectsParentMeasure est true
, dans le cadre de la logique de rendu de l’hôte de contenu. Par exemple, l’élément TextBox doit répondre à certaines modifications dans le texte qui peuvent nécessiter que le cadre englobant du TextBox lui-même soit modifié.
Les implémentations personnalisées OnPropertyChanged peuvent choisir d’avoir un comportement similaire pour les modifications de propriété de dépendance où AffectsParentMeasure est true
.
Les propriétés de toutes les classes dérivées de PropertyMetadata sont généralement définies dans le modèle objet en lecture-écriture. Cela permet de les ajuster après l’initialisation de l’instance. Toutefois, une fois les métadonnées consommées dans le cadre d’un appel à Register, AddOwnerou OverrideMetadata, le système de propriétés scelle cette instance de métadonnées et les propriétés qui transmettent les spécificités des métadonnées sont désormais considérées comme immuables. Si vous tentez de définir cette propriété après IsSealed est true
sur cette instance de métadonnées, une exception est levée.
Utilisation du texte XAML
Les membres de cette classe ne sont généralement pas utilisés en XAML.