UIElement.MeasureCore(Size) Methode

Definition

Stellt beim Überschreiben in einer abgeleiteten Klasse die Maßlogik für das ordnungsgemäße Festlegen der Größe dieses Elements bereit, wobei die Größe des Inhalts sämtlicher untergeordneter Elemente berücksichtigt wird.

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

Parameter

availableSize
Size

Die verfügbare Größe, die das übergeordnete Element für das untergeordnete Element reservieren kann.

Gibt zurück

Die gewünschte Größe dieses Elements im Layout.

Beispiele

Eine typische Überschreibung von MeasureCore folgt diesem ungefähren Muster (es gibt keine integrierte Auflistung namens VisualChildren; VisualChildren ist ein Platzhalter, der die untergeordnete Auflistung darstellt, die Ihr Element verwaltet).

protected override Size MeasureCore(Size availableSize)
{
    foreach (UIElement child in VisualChildren)
    {
        child.Measure(availableSize);
        // call some method on child that adjusts child size if needed
        _cache.StoreInfoAboutChild(child);
    }
    Size desired = CalculateBasedOnCache(_cache);
    return desired;
}
Protected Overrides Function MeasureCore(ByVal availableSize As Size) As Size
    For Each child As UIElement In VisualChildren
        child.Measure(availableSize)
        ' call some method on child that adjusts child size if needed
        _cache.StoreInfoAboutChild(child)
    Next child
    Dim desired As Size = CalculateBasedOnCache(_cache)
    Return desired
End Function
  • Sie müssen für jedes untergeordnete Element aufrufen Measure .

  • Im Allgemeinen sollte Ihre Implementierung Messinformationen zwischen den MeasureCore Methodenaufrufen und ArrangeCore im selben Element zwischenspeichern.

  • Das Aufrufen von Basisimplementierungen von MeasureCore ist nicht erforderlich, kann aber geeignet sein, wenn die Basisimplementierung eine gewünschte Layoutfunktion bietet.

  • Aufrufe von Measure für untergeordnete Elemente sollten entweder dasselbe availableSize wie das übergeordnete Element oder eine Teilmenge des Bereichs übergeben, abhängig vom Typ des Layouts, das das übergeordnete Element unterstützt. Beispielsweise wäre es gültig, den Bereich für einen elementspezifischen Rahmen oder eine Auffüllung, eine Bildlaufleiste oder ein benutzerdefiniertes Steuerelement zu entfernen.

Hinweise

Es ist üblicher, ein -Element von FrameworkElement ableiten als UIElement. Wenn Sie von FrameworkElementableiten, beachten Sie, dass eine Überschreibung von MeasureCore auf FrameworkElement die MeasureCore -Methode versiegelt. Daher überschreiben MeasureCore Sie nur als Mittel zum Ändern von Layoutmaßmerkmalen, wenn Sie von UIElement einer Vererbung ableiten, die nicht enthält FrameworkElement. Dies kann der Fall sein, wenn Sie versuchen, Eine eigene Implementierung auf WPF-Kernebene zu erstellen. FrameworkElementAndernfalls ist die Implementierungsvorlage für measure-Verhalten die FrameworkElement Implementierung von .MeasureOverride

Ein übergeordnetes Element mit untergeordneten Elementen muss für jedes untergeordnete Element aufrufen Measure , andernfalls sind diese untergeordneten Elemente nicht groß oder angeordnet und verschwinden effektiv aus dem Layout.

Hinweise für Vererber

Implementierungen müssen in der Lage sein, einen dafür availableSize angegebenen Wert zu verarbeiten, der unendlich ist. Ein unendlicher Wert gibt keine angeforderten Einschränkungen an und verschiebt die Messauswahl effektiv durch rekursive Measure-Aufrufe auf das übergeordnete Element.

Implementierungen können den angegebenen availableSize Wert als weiche Einschränkung betrachten. Das untergeordnete Element kann eine größere Größe angeben, auch wenn andere Aspekte des Anwendungscodes die aktuelle tatsächliche Größe des übergeordneten Elements bestimmen konnten. Die Großformatanforderung ist eine Konvention, die angibt, dass das untergeordnete Element fragt, ob Ihr übergeordnetes Element den Bildlauf von Inhalten innerhalb eines Inhaltsanzeigebereichs unterstützen kann.

Gilt für: