Taal

FrameworkElement.MeasureOverride(Size) Methode

Definitie

Wanneer deze wordt overschreven in een afgeleide klasse, meet u de grootte in de indeling die is vereist voor onderliggende elementen en bepaalt u een grootte voor de FrameworkElement-afgeleide klasse.

protected:
 virtual System::Windows::Size MeasureOverride(System::Windows::Size availableSize);
protected virtual System.Windows.Size MeasureOverride(System.Windows.Size availableSize);
abstract member MeasureOverride : System.Windows.Size -> System.Windows.Size
override this.MeasureOverride : System.Windows.Size -> System.Windows.Size
Protected Overridable Function MeasureOverride (availableSize As Size) As Size

Parameters

availableSize
Size

De beschikbare grootte die dit element kan geven aan onderliggende elementen. Oneindigheid kan worden opgegeven als een waarde om aan te geven dat het element de grootte heeft van de inhoud die beschikbaar is.

Retouren

De grootte die dit element nodig heeft tijdens de indeling, op basis van de berekeningen van onderliggende elementgrootten.

Opmerkingen

Overschrijf MeasureOverride om aangepaste indelingsgroottegedrag voor uw element te implementeren terwijl het deelneemt aan het indelingssysteem van Windows Presentation Foundation (WPF). Uw implementatie moet het volgende doen:

  1. De specifieke verzameling onderliggende elementen die deel uitmaken van de indeling herhalen, roept Measure elk onderliggend element aan.

  2. Onmiddellijk op het onderliggende element ( DesiredSize dit is ingesteld als een eigenschap nadat Measure deze is aangeroepen).

  3. Bereken de netto gewenste grootte van het bovenliggende element op basis van de meting van de onderliggende elementen.

De retourwaarde van MeasureOverride het element moet de eigen gewenste grootte van het element zijn, die vervolgens de metinginvoer wordt voor het bovenliggende element van het huidige element. Ditzelfde proces wordt voortgezet door het indelingssysteem totdat het hoofdelement van de pagina is bereikt.

Tijdens dit proces kunnen onderliggende elementen een grotere DesiredSize grootte retourneren dan de eerste availableSize om aan te geven dat het onderliggende element meer ruimte wil. Dit kan worden verwerkt in uw eigen implementatie door een schuifbaar gebied te introduceren, door het formaat van het bovenliggende besturingselement te wijzigen, door een bepaalde manier van gestapelde volgorde vast te stellen of een aantal oplossingen voor het meten of rangschikken van inhoud.

Important

Elementen moeten tijdens dit proces elk onderliggend element aanroepen Measure , anders worden de onderliggende elementen niet correct aangepast of gerangschikt.

Notities voor overnemers

In de volgende niet-compilatiecode ziet u dit implementatiepatroon. VisualChildren vertegenwoordigt een inventariserbare verzamelingseigenschap van onderliggende elementen die door uw eigen element moeten worden gedefinieerd. De eigenschap kan elke naam krijgen. VisualChildren is een tijdelijke aanduiding voor het doel van dit voorbeeld, is VisualChildren geen API zoals geleverd door WPF of een deel van een naamgevingspatroon.

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;
}
Protected Overrides Function MeasureOverride(ByVal availableSize As Size) As Size
    Dim desiredSize As New Size()
    For Each child As UIElement 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
    Next child
    ' 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
End Function

Van toepassing op