Windows Dev Center

Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

UIElement.Measure, méthode

Met à jour la propriété DesiredSize de la classe UIElement. Les éléments parents appellent cette méthode depuis leur propre implémentation MeasureCore pour former une actualisation récursive de la disposition. L'appel à cette méthode constitue la première passe (la passe de "Measure") d'une actualisation de disposition.

Espace de noms :  System.Windows
Assembly :  PresentationCore (dans PresentationCore.dll)

public void Measure(
	Size availableSize
)

Paramètres

availableSize
Type : System.Windows.Size
Espace disponible qu'un élément parent peut allouer à un élément enfant. Un élément enfant peut demander un espace plus grand que ce qui est disponible ; les dimensions fournies peuvent être adaptées si le défilement est possible dans le modèle de contenu pour l'élément actif.

Les calculs de positionnement des éléments dans Windows Presentation Foundation (WPF) comprennent un appel à Measure et un appel à Arrange. Pendant l'appel à Measure, un élément détermine ses spécifications de taille à l'aide d'une entrée availableSize. Lors de l'appel à Arrange, les dimensions des éléments sont finalisées.

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

Lorsqu'une disposition est instanciée pour la première fois, il reçoit toujours un appel de Measure avant celui d'Arrange. Toutefois, il peut recevoir un appel d'Arrange sans Measureaprès le premier tour de mise en disposition. Cela peut arriver lorsqu'une propriété qui affecte uniquement Arrange est modifiée (tel que l'alignement) ou que le parent reçoit l'appel d'Arrange sans Measure. Un appel de Measure invalide alors automatiquement un appel d'Arrange.

Les actualisations de disposition se produisent de façon asynchrone, telles que le thread principal n'attend pas chaque modification de la disposition. Exécuter une requête sur un élément, par le biais d'une vérification 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).

RemarqueRemarque

Les actualisations de disposition peuvent être forcées en utilisant la méthode UpdateLayout. Toutefois, l'appel à cette méthode est habituellement inutile et peut dégrader les performances.

Le système de disposition présente deux files d'attente distinctes pour les dispositions non valides : une pour Measure et une pour Arrange. La file d'attente de disposition est triée selon l'ordre de l'arborescence des éléments visuels relative à l'élément assurant la disposition ; les éléments plus hauts dans l'arborescence se trouvent au début de la file d'attente pour éviter des actualisations redondantes dues aux 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 supprimés de la file d'attente s'ils sont déjà validés en vue de leur disposition.

Lors de l'actualisation de la disposition, la file d'attente de Measure est d'abord vidée, puis celle d'Arrange. Un élément dans la file d'attente d'Arrange n'est jamais replacé dans la file s'il existe un élément dans la file d'attente de Measure.

This example shows how to override the default layout behavior of the Panel element and create custom layout elements that are derived from Panel.

The example defines a simple custom Panel element called PlotPanel, which positions child elements according to two hard-coded x- and y-coordinates. In this example, x and y are both set to 50; therefore, all child elements are positioned at that location on the x and y axes.

To implement custom Panel behaviors, the example uses the MeasureOverride and ArrangeOverride methods. Each method returns the Size data that is necessary to position and render child elements.


public class PlotPanel : Panel
{
    // Default public constructor
    public PlotPanel()
        : base()
    {
    }

    // Override the default Measure method of Panel
    protected override Size MeasureOverride(Size availableSize)
    {
        Size panelDesiredSize = new Size();

        // In our example, we just have one child. 
        // Report that our panel requires just the size of its only child.
        foreach (UIElement child in InternalChildren)
        {
            child.Measure(availableSize);
            panelDesiredSize = child.DesiredSize;
        }

        return panelDesiredSize ;
    }
    protected override Size ArrangeOverride(Size finalSize)
    {
        foreach (UIElement child in InternalChildren)
        {
            double x = 50;
            double y = 50;

            child.Arrange(new Rect(new Point(x, y), child.DesiredSize));
        }
        return finalSize; // Returns the final Arranged size
    }
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

Afficher:
© 2015 Microsoft