Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

FrameworkElement.MeasureOverride méthode (Size)

 

Date de publication : novembre 2016

En cas de substitution dans une classe dérivée, mesure la dimension de disposition requise pour les éléments enfants et détermine une taille pour la classe dérivée de FrameworkElement.

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

protected virtual Size MeasureOverride(
	Size availableSize
)

Paramètres

availableSize
Type: System.Windows.Size

Taille disponible que cet élément peut donner aux éléments enfants. Vous pouvez définir une valeur infinie pour indiquer que l’élément se redimensionne en fonction du contenu disponible.

Valeur de retour

Type: System.Windows.Size

Taille dont cet élément estime avoir besoin lors de la disposition, en fonction de ses calculs des tailles des éléments enfants.

Substituer MeasureOverride pour implémenter le comportement de dimensionnement de disposition personnalisée pour votre élément tel qu’il participe le Windows Presentation Foundation (WPF) système de disposition. Votre implémentation doit effectuer ce qui suit :

  1. Itérer la collection d’enfants qui font partie de la mise en page, appel particulier, votre élément Measure sur chaque élément enfant.

  2. Obtenez immédiatement DesiredSize sur l’enfant (défini comme propriété après que Measure est appelée).

  3. Calculer la taille totale souhaitée du parent d’après la mesure des éléments enfants.

La valeur de retour de MeasureOverride doit être la taille voulue propre à l’élément, qui devient alors la mesure de l’entrée pour l’élément parent de l’élément actuel. Ce même processus se poursuit dans le système de disposition jusqu'à atteindre l’élément racine de la page.

Pendant ce processus, les éléments enfants peuvent retourner une plus grande DesiredSize taille que la première availableSize pour indiquer que l’élément enfant nécessite plus d’espace. Cela peut être gérée dans votre propre implémentation en introduisant une région déroulante, en redimensionnant le contrôle parent, en établissant une certaine forme d’ordre empilée ou n’importe quel nombre de solutions pour la mesure ou de réorganisation du contenu.

System_CAPS_importantImportant

Les éléments doivent appeler Measure sur chaque enfant pendant ce processus, sinon les éléments enfants ne seront pas correctement dimensionnés ou réorganisées.

Remarques à l’attention des héritiers :

Le code non compilé suivant affiche ce modèle d’implémentation. VisualChildren représente une propriété de collection énumérable des enfants que votre propre élément doit définir. La propriété peut être n’importe quel nom. VisualChildren est un nom d’espace réservé dans le cadre de cet exemple, VisualChildren n’est pas un API fournie par WPF ou une partie d’un modèle d’affectation de noms...

protected override Size MeasureOverride(Size availableSize)
{
    Size desiredSize = new Size();
    foreach (UIElement child in VisualChildren)
    {
        child.Measure(availableSize);
        // do something with child.DesiredSize, either sum them directly or apply whatever logic your element has for reinterpreting the child sizes
        // if greater than availableSize, must decide what to do and which size to return
    }
    // desiredSize = ... computed sum of children's DesiredSize ...;
    // IMPORTANT: do not allow PositiveInfinity to be returned, that will raise an exception in the caller!
    // PositiveInfinity might be an availableSize input; this means that the parent does not care about sizing
    return desiredSize;
}

.NET Framework
Disponible depuis 3.0
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Retour au début
Afficher: