UIElement.Measure(Size) Method

Definition

Met à jour le DesiredSize d’un UIElement.Updates the DesiredSize of a UIElement. Les éléments parents appellent cette méthode à partir de leurs propres implémentations de MeasureCore(Size) pour former une mise à jour de disposition récursive.Parent elements call this method from their own MeasureCore(Size) implementations to form a recursive layout update. L’appel de cette méthode constitue la première passe (la passe « Mesure ») de la mise à jour d’une disposition.Calling this method constitutes the first pass (the "Measure" pass) of a layout update.

public:
 void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)

Parameters

availableSize
Size

L’espace disponible qu’un élément parent peut allouer à un élément enfant.The available space that a parent element can allocate a child element. Un élément enfant peut demander plus d’espace que ce qui est disponible ; la taille fournie peut être adaptée si le défilement est possible dans le modèle de contenu pour l’élément actuel.A child element can request a larger space than what is available; the provided size might be accommodated if scrolling is possible in the content model for the current element.

Remarks

Le calcul du positionnement de la disposition dans Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) est constitué d’un appel de Measure et d’un appel de Arrange.Computation of layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) is comprised of a Measure call and an Arrange call. Pendant l’appel de Measure, un élément détermine ses besoins en termes de taille à l’aide d’une entrée de availableSize.During the Measure call, an element determines its size requirements by using an availableSize input. Pendant l’appel de Arrange, la taille de l’élément est finalisée.During the Arrange call, the element size is finalized.

availableSize peut être n’importe quel nombre compris entre zéro et infini.availableSize can be any number from zero to infinite. Les éléments qui participent à la disposition doivent retourner le Size minimal requis pour un availableSizedonné.Elements participating in layout should return the minimum Size they require for a given availableSize.

Quand une disposition est d’abord instanciée, elle reçoit toujours un appel Measure avant Arrange.When a layout is first instantiated, it always receives a Measure call before Arrange. Toutefois, après la première passe de disposition, il peut recevoir un appel de Arrange sans Measure; Cela peut se produire lorsqu’une propriété qui affecte uniquement Arrange est modifiée (par exemple, l’alignement) ou lorsque le parent reçoit une Arrange sans Measure.However, after the first layout pass, it may receive an Arrange call without a Measure; this can happen when a property that affects only Arrange is changed (such as alignment), or when the parent receives an Arrange without a Measure. Un appel de Measure invalidera automatiquement un appel de Arrange.A Measure call will automatically invalidate an Arrange call.

Les mises à jour de disposition se produisent de manière asynchrone, de sorte que le thread principal n’attend pas chaque modification de disposition possible.Layout updates happen asynchronously, such that the main thread is not waiting for every possible layout change. L’interrogation d’un élément via la vérification du code-behind des valeurs de propriété peut ne pas refléter immédiatement les modifications apportées aux propriétés qui interagissent avec les caractéristiques de dimensionnement ou de disposition (par exemple, la propriété Width).Querying an element via code-behind checking of property values may not immediately reflect changes to properties that interact with the sizing or layout characteristics (the Width property, for example).

Note

Les mises à jour de disposition peuvent être forcées à l’aide de la méthode UpdateLayout.Layout updates can be forced by using the UpdateLayout method. Toutefois, l’appel de cette méthode n’est généralement pas nécessaire et peut entraîner des performances médiocres.However, calling this method is usually unnecessary and can cause poor performance.

Le système de disposition conserve deux files d’attente distinctes de dispositions non valides, une pour les Measure et une pour les Arrange.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. La file d’attente de disposition est triée en fonction de l’ordre des éléments dans l’arborescence d’éléments visuels de l’élément qui effectue la mise en page ; les éléments situés plus haut dans l’arborescence sont en haut de la file d’attente, afin d’éviter les dispositions redondantes provoquées par des modifications répétées dans les parents.The layout queue is sorted based upon the order of elements in the visual tree of the element performing layout; elements higher in the tree are at the top of the queue, to avoid redundant layouts caused by repeated changes in parents. Les entrées dupliquées sont automatiquement supprimées de la file d’attente, et les éléments sont automatiquement supprimés de la file d’attente s’ils sont déjà validés par disposition.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already layout-validated.

Lors de la mise à jour de la disposition, la file d’attente Measure est vidée en premier, suivie de la file d’attente Arrange.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Un élément de la file d’attente Arrange ne sera jamais organisé s’il y a un élément dans la file d’attente Measure.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

Applies to