Measure, méthode
TOC
Réduire la table des matières
Développer la table des matières

UIElement.Measure Method

Met à jour la DesiredSize d'un UIElement. En général, les objets qui implémentent la disposition personnalisée pour les enfants de la disposition appellent cette méthode à partir de leurs propres implémentations MeasureOverride pour former une mise à jour de disposition récursive.

Syntaxe


public void Measure(
  Size availableSize
)

Paramètres

availableSize

Type: Size

Espace disponible qu'un parent peut allouer à un objet enfant. Un objet enfant peut demander un espace plus grand que ce qui est disponible ; les dimensions fournies peuvent être adaptées si le défilement ou un autre comportement de redimensionnement est possible dans ce conteneur particulier.

Remarques

L'appel de Measure occasionne éventuellement une implémentation MeasureOverride de cette classe spécifique. Sinon, la plupart des classes FrameworkElement ont un comportement de disposition par défaut implicite pour Measure.

availableSize peut correspondre à tout nombre de zéro à l'infini. Les éléments qui participent à la disposition doivent retourner la valeur Size minimale dont ils ont besoin pour une propriété availableSize donnée.

Le calcul du positionnement de la mise en page initiale dans une interface utilisateur XAML se compose respectivement d'un appel Measure et d'un appel Arrange. Pendant l'appel à Measure, le système de disposition détermine les spécifications de taille d'un élément à l'aide de la mesure availableSize. Pendant l'appel de Arrange, le système de disposition finalise la taille et la position du cadre englobant d'un élément.

Lorsqu'une disposition est produite la première fois, un appel de Measure a toujours lieu avant Arrange. Toutefois, après la première passe de disposition, un appel Arrange peut se produire sans Measure qui le précède. 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 méthode Arrange sans méthode Measure.

Un appel Measure ne validera pas automatiquement les informations Arrange. Les actualisations de la disposition se produisent généralement de façon 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 à des propriétés qui affectent le dimensionnement des éléments (telles que Width).

Exemples

Cet exemple implémente MeasureOverride pour personnaliser la logique de passe "Measure" pour une implémentation de panneau personnalisé. Notez en particulier les aspects suivants du code :

  • Itère au sein des enfants.

  • Pour chaque enfant, appelle Measure, en utilisant une valeur Size appropriée en fonction de la manière dont la logique de panneau traite le nombre d'enfants et sa propre limite de taille connue.

  • Retourne sa taille (dans ce cas, ce panneau simple retourne une taille fixe plutôt qu'une taille calculée en additionnant les mesures).


// First measure all children and return available size of panel
protected override Size MeasureOverride(Size availableSize)
{

    // Measure first 9 children giving them space up to 100x100, remaining children get 0x0 
    int i = 0;
    foreach (FrameworkElement child in Children)
    {
        if (i < 9)
        {
            child.Measure(new Size(100, 100));
        }
        else
        {
            child.Measure(new Size(0, 0));
        }

        i++;
    }


    // return the size available to the whole panel, which is 300x300
    return new Size(300, 300);
}


Configuration requise

Client minimal pris en charge

Windows 8

Serveur minimal pris en charge

Windows Server 2012

Espace de noms

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Métadonnées

Windows.winmd

Voir aussi

UIElement
MeasureOverride
ArrangeOverride
Démarrage rapide : définition des dispositions

 

 

Afficher:
© 2016 Microsoft