UIElement.Arrange(Rect) Méthode
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.
Positionne les éléments enfants et détermine une taille pour un UIElement. Les éléments parents appellent cette méthode à partir de leur ArrangeCore(Rect) implémentation (ou d’un équivalent au niveau du framework WPF) pour former une mise à jour de disposition récursive. Cette méthode constitue la deuxième 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 en tant qu’instance Rect .
Remarques
Pour WPF scénarios de dérivation d’éléments au niveau de l’infrastructure, 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 implémentation ArrangeOverride est appelée en interne par Arrange dans le cadre des opérations de disposition au niveau de l’infrastructure par défaut WPF. Votre ArrangeCore implémentation doit également appeler ArrangeOverride chaque élément enfant, s’il a des éléments enfants.
Pour WPF scénarios de dérivation d’éléments de niveau principal, 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 votre classe. Votre implémentation ArrangeCore est appelée en interne par Arrange dans le cadre des opérations de disposition au niveau de l’infrastructure par défaut WPF. Toutefois, cela suppose que vous utilisez WPF disposition au niveau de l’infrastructure 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 WPF niveau principal à partir de la classe d’éléments de base UIElement. Votre ArrangeCore implémentation doit également appeler Arrange chaque élément enfant, s’il a des éléments enfants. Notez que le scénario de niveau principal WPF implique que vous n’utilisez pas de classe dérivée FrameworkElement, car FrameworkElement seals ArrangeCore.
Le calcul de WPF positionnement au niveau du framework dans Windows Presentation Foundation (WPF) se compose d’un appel Measure et d’un appel Arrange. Pendant l’appelMeasure, le système de disposition détermine les exigences de taille d’un élément à l’aide d’un argument (Size) fourni availableSize . 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 de zéro à infini. Les éléments à définir retournent le minimum Size requis par le biais du 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 a 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 un Arrange sans un Measure. Un Measure appel invalide automatiquement un Arrange appel.
Les mises à jour de disposition se produisent généralement de façon asynchrone (à la fois déterminée 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 (par Widthexemple).
Note
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 elle 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 sera probablement déjà en cours de traitement des 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, une pour Measure et une 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 élevés dans l’arborescence se trouvent 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. 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 Arrange file d’attente. Un élément de la Arrange file d’attente ne sera jamais organisé s’il y a un élément dans la Measure file d’attente.