UIElement.Arrange(Rect) UIElement.Arrange(Rect) UIElement.Arrange(Rect) UIElement.Arrange(Rect) Method

Définition

Positionne les éléments enfants et détermine une taille pour un UIElement.Positions child elements and determines a size for a UIElement. Les éléments parents appellent cette méthode à partir de leur implémentation de ArrangeCore(Rect) (ou d’un équivalent de niveau infrastructure WPF) pour former une mise à jour de disposition récursive.Parent elements call this method from their ArrangeCore(Rect) implementation (or a WPF framework-level equivalent) to form a recursive layout update. Cette méthode constitue la seconde passe d’une mise à jour de disposition.This method constitutes the second pass of a layout update.

public:
 void Arrange(System::Windows::Rect finalRect);
public void Arrange (System.Windows.Rect finalRect);
member this.Arrange : System.Windows.Rect -> unit
Public Sub Arrange (finalRect As Rect)

Paramètres

finalRect
Rect Rect Rect Rect

Taille finale calculée par le parent pour l’élément enfant, fournie sous forme d’instance de Rect.The final size that the parent computes for the child element, provided as a Rect instance.

Remarques

Pour les scénarios dérivés de l’élément au niveau de l' Arrange infrastructure WPF, le comportement de ne doit pas (et ne peut pas, sauf si vous l’occultez) être modifié.For WPF framework-level element deriving scenarios, behavior for Arrange should not (and cannot, unless you shadow) be changed. Au lieu de cela, vous devez ArrangeOverride substituer l’implémentation dans votre classe.Instead, you should override the ArrangeOverride implementation in your class. Votre ArrangeOverride implémentation est appelée en interne par Arrange dans le cadre des opérations de mise en page au niveau de l’infrastructure WPF par défaut.Your ArrangeOverride implementation is called internally by Arrange as part of default WPF framework-level layout operations. Votre ArrangeCore implémentation doit également appeler ArrangeOverride sur chaque élément enfant, s’il a des éléments enfants.Your ArrangeCore implementation should also call ArrangeOverride on each child element, if it has child elements.

Pour les scénarios dérivés de l’élément de niveau principal WPF, Arrange le comportement de ne doit pas (et ne peut pas être modifié, sauf si vous l’occultez).For WPF core-level element deriving scenarios, the behavior for Arrange should not (and cannot, unless you shadow) be changed. Au lieu de cela, vous ArrangeCore devez substituer dans votre classe.Instead, you should override ArrangeCore in your class. Votre ArrangeCore implémentation est appelée en interne par Arrange dans le cadre des opérations de mise en page au niveau de l’infrastructure WPF par défaut.Your ArrangeCore implementation is called internally by Arrange as part of default WPF framework-level layout operations. Toutefois, cela suppose que vous utilisez la disposition au niveau de l’infrastructure WPF et son système de disposition, ce qui n’est pas souvent le cas si vous dérivez spécifiquement des éléments au niveau UIElement du noyau WPF à partir de la classe d’élément de base.However, this assumes you are using WPF framework-level layout and its layout system, which is often not the case if you are specifically deriving elements at the WPF core-level from the UIElement base element class. Votre ArrangeCore implémentation doit également appeler Arrange sur chaque élément enfant, s’il a des éléments enfants.Your ArrangeCore implementation should also call Arrange on each child element, if it has child elements. Notez que le scénario de niveau principal WPF implique que vous n’utilisez pas une FrameworkElement classe dérivée, FrameworkElement car ArrangeCoreles scellés.Note that the WPF core-level scenario implies that you are not using a FrameworkElement derived class, because FrameworkElement seals ArrangeCore.

Le calcul du positionnement de la disposition au niveau de Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) l’infrastructure WPF Measure dans se compose Arrange d’un appel et d’un appel.Computation of WPF framework-level layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) consists of a Measure call and an Arrange call. Pendant l' Measure appel, le système de disposition détermine les exigences de taille d’un élément Size àavailableSizel’aide d’un argument fourni ().During the Measure call, the layout system determines an element's size requirements using a provided Size (availableSize) argument. Pendant l' Arrange appel, le système de disposition finalise la taille et la position du cadre englobant d’un élément.During the Arrange call, the layout system finalizes the size and position of an element's bounding box. Pour plus d’informations, consultez Disposition.For more information, see Layout.

availableSizepeut être n’importe quel nombre compris entre zéro et l’infini.availableSize can be any number from zero to infinity. Les éléments à disposer retournent la Size valeur minimale requise par availableSize le biais du paramètre.Elements to be laid out return the minimum Size they require through the availableSize parameter.

Quand une disposition est d’abord instanciée, elle reçoit toujours Measure un appel Arrangeavant.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 Arrange un appel Measuresans. cela peut se produire lorsqu’une propriété qui affecte Arrange uniquement est modifiée (telle que l’alignement) ou lorsque le parent reçoit Arrange un 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 Measure appel invalidera automatiquement un Arrange appel.A Measure call will automatically invalidate an Arrange call.

Les mises à jour de disposition se produisent généralement de manière asynchrone (à un moment déterminé par le système de disposition).Layout updates generally occur asynchronously (at a time determined by the layout system). Un élément peut ne pas refléter immédiatement les modifications apportées aux propriétés qui affectent Widthle dimensionnement des éléments (par exemple,).An element might not immediately reflect changes to properties that affect element sizing (such as Width).

Notes

Les mises à jour de disposition peuvent être forcées UpdateLayout à l’aide de la méthode. Toutefois, l’appel de cette fonction n’est pas recommandé, car il est généralement inutile et peut entraîner des performances médiocres.Layout updates can be forced by using the UpdateLayout method; however, calling this function is not recommended, as it is usually unnecessary and can cause poor performance. Dans de nombreuses situations où UpdateLayout l’appel peut être approprié, le système de disposition est probablement déjà en cours de traitement des mises à jour.In many situations where calling UpdateLayout might be appropriate, the layout system will probably already be processing updates. Le système de disposition peut traiter les modifications de disposition d’une manière qui peut optimiser toutes les mises à jour nécessaires dans le cadre d’un package.The layout system can process layout changes in a manner that can optimize all necessary updates as part of a package.

Le système de disposition conserve deux files d’attente distinctes de dispositions non valides Measure , une pour Arrangeet une pour.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.The layout queue is sorted based upon the order of elements in the visual tree. 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.Elements higher in the tree are at the top of the queue, in order 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à valides.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already valid.

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

S’applique à