Développer Réduire

UIElement.DesiredSize Property

Obtient la taille que cet UIElement a calculée pendant la passe de mesure dans le cadre du processus de disposition.

Syntaxe


public Size DesiredSize { get; }

Valeur de propriété

Type: Size

Taille que cet UIElement a calculée pendant la passe de mesure dans le cadre du processus de disposition.

Remarques

DesiredSize est généralement contrôlée comme l'un des facteurs de mesure lorsque vous implémentez des substitutions de comportement de disposition telles que ArrangeOverride ou MeasureOverride. Selon la logique parente de la disposition du conteneur, DesiredSize peut être complètement respecté, des contraintes sur DesiredSize peuvent être appliquées, et ces contraintes peuvent également modifier d'autres caractéristiques de l'élément parent ou de l'élément enfant. Par exemple, un contrôle qui prend en charge les zones déroulantes (mais ne dérive pas des contrôles qui activent déjà des régions déroulantes) peut comparer les dimensions disponibles avec DesiredSize. Le contrôle peut ensuite définir un état interne qui active les barres de défilement dans l'interface utilisateur de ce contrôle. Ou, DesiredSize peut être ignoré et l'élément obtient toujours un emplacement de disposition fixe, ou un emplacement dont la taille dépend d'autres considérations telles que les valeurs des propriétés jointes.

Exemples

Cet exemple interroge DesiredSize dans le cadre de l'itération enfant pour une implémentation de ArrangeOverride.


// Second arrange all children and return final size of panel
protected override Size ArrangeOverride(Size finalSize)
{
    // Get the collection of children
    UIElementCollection mychildren = Children;

    // Get total number of children
    int count = mychildren.Count;

    // Arrange children
    // We're only allowing 9 children in this panel.  More children will get a 0x0 layout slot.
    int i;
    for (i = 0; i < 9; i++)
    {

        // Get (left, top) origin point for the element in the 3x3 block
        Point cellOrigin = GetOrigin(i, 3, new Size(100, 100));

        // Arrange child
        // Get desired height and width. This will not be larger than 100x100 as set in MeasureOverride.
        double dw = mychildren[i].DesiredSize.Width;
        double dh = mychildren[i].DesiredSize.Height;

        mychildren[i].Arrange(new Rect(cellOrigin.X, cellOrigin.Y, dw, dh));

    }

    // Give the remaining children a 0x0 layout slot
    for (i = 9; i < count; i++)
    {
        mychildren[i].Arrange(new Rect(0, 0, 0, 0));
    }


    // Return final size of the panel
    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
ArrangeOverride
MeasureOverride

 

 

Afficher:
© 2015 Microsoft