UIElement.Arrange(Rect) Méthode

Définition

Positionne les éléments enfants et détermine une taille pour un 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. Cette méthode constitue la seconde passe d’une mise à jour de disposition.

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

Taille finale calculée par le parent pour l’élément enfant, fournie sous forme d’instance de Rect.

Remarques

Pour les scénarios de dérivation d’élément au niveau du framework WPF, le comportement de Arrange ne doit pas (et ne peut pas, sauf si vous ombrez) être modifié. Au lieu de cela, vous devez remplacer l’implémentation ArrangeOverride dans votre classe. Votre ArrangeOverride implémentation est appelée en interne par Arrange dans le cadre des opérations de disposition au niveau de l’infrastructure WPF par défaut. Votre ArrangeCore implémentation doit également appeler ArrangeOverride sur chaque élément enfant, s’il contient des éléments enfants.

Pour les scénarios de dérivation d’élément de niveau principal WPF, le comportement de Arrange ne doit pas (et ne peut pas, sauf si vous ombrez) être modifié. Au lieu de cela, vous devez remplacer ArrangeCore dans votre classe. Votre ArrangeCore implémentation est appelée en interne par Arrange dans le cadre des opérations de disposition au niveau de l’infrastructure WPF par défaut. Toutefois, cela suppose que vous utilisez la disposition au niveau de l’infrastructure WPF et son système de disposition, ce qui n’est souvent pas le cas si vous dérivez spécifiquement des éléments au niveau du noyau WPF à partir de la UIElement classe d’élément de base. Votre ArrangeCore implémentation doit également appeler Arrange sur chaque élément enfant, s’il contient des éléments enfants. Notez que le scénario de niveau de base WPF implique que vous n’utilisez pas de FrameworkElement classe dérivée, car FrameworkElement seals ArrangeCore.

Le calcul du positionnement de la disposition au niveau de l’infrastructure WPF dans Windows Presentation Foundation (WPF) se compose d’un Measure appel et d’un Arrange appel. Pendant l’appelMeasure, le système de disposition détermine les exigences de taille d’un élément à l’aide d’un argument (availableSize) fourni Size . Pendant l’appel Arrange , le système de disposition finalise la taille et la position du cadre englobant d’un élément. Pour plus d’informations, consultez Disposition.

availableSize peut être n’importe quel nombre allant de zéro à l’infini. Les éléments à mettre en place retournent le minimum Size requis via le availableSize paramètre .

Lorsqu’une disposition est instanciée pour la première fois, elle reçoit toujours un Measure appel avant Arrange. Toutefois, après le premier passage de disposition, il peut recevoir un Arrange appel sans Measureun ; 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 un Arrange sans Measure. Un Measure appel invalide automatiquement un Arrange appel.

Les mises à jour de disposition se produisent généralement de manière asynchrone (à un moment déterminé par le système de disposition). Un élément peut ne pas refléter immédiatement les modifications apportées aux propriétés qui affectent le dimensionnement de l’élément (comme Width).

Notes

Les mises à jour de disposition peuvent être forcées à l’aide de la UpdateLayout 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. Dans de nombreuses situations où l’appel UpdateLayout peut être approprié, le système de disposition traite probablement déjà les mises à jour. 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.

Le système de disposition conserve deux files d’attente distinctes de dispositions non valides, l’une pour Measure et l’autre pour Arrange. La file d’attente de disposition est triée en fonction de l’ordre des éléments dans l’arborescence visuelle. Les éléments plus haut dans l’arborescence se trouvent en haut de la file d’attente, afin d’éviter les dispositions redondantes causées par des modifications répétées dans les parents. Les entrées en double 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.

Lors de la mise à jour de la disposition, la Measure file d’attente est vidée en premier, suivie de la file d’attente Arrange . Un élément dans la file d’attente Arrange ne sera jamais organisé s’il y a un élément dans la file d’attente Measure .

S’applique à