UIElement.MeasureCore(Size) UIElement.MeasureCore(Size) UIElement.MeasureCore(Size) UIElement.MeasureCore(Size) Method

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.When overridden in a derived class, provides measurement logic for sizing this element properly, with consideration of the size of any child element content.

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 Size Size Size

Die verfügbare Größe, die das übergeordnete Element für das untergeordnete Element reservieren kann.The available size that the parent element can allocate for the child.

Gibt zurück

Die gewünschte Größe dieses Elements im Layout.The desired size of this element in layout.

Beispiele

Eine typische Überschreibung MeasureCore von folgt diesem ungefähren Muster (es gibt keine integrierte Auflistung mit dem VisualChildrenNamen). VisualChildren ein Platzhalter, der die untergeordnete Auflistung darstellt, die Ihr Element beibehält).A typical override of MeasureCore follows this approximate pattern (there is not a built-in collection called VisualChildren; VisualChildren is a placeholder that represents whatever child collection your element maintains).

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 Measure jedes untergeordnete Element aufzurufen.You must call Measure on each child element.

  • Im Allgemeinen sollte die-Implementierung Mess Informationen zwischen den MeasureCore - ArrangeCore und-Methoden aufrufen im gleichen-Element Zwischenspeichern.Generally, your implementation should cache measurement information between the MeasureCore and ArrangeCore method calls in the same element.

  • Das Aufrufen von Basis MeasureCore Implementierungen von ist nicht erforderlich, kann jedoch sinnvoll sein, wenn die Basis Implementierung eine gewünschte Layoutfunktion bereitstellt.Calling base implementations of MeasureCore is not required, but might be appropriate if the base implementation provides a desired layout capability.

  • Aufrufe von availableSize für untergeordnete Elemente sollten entweder das gleiche wie das übergeordnete Element oder eine Teilmenge des Bereichs, abhängig vom Layouttyp, den das übergeordnete Element unterstützt, übergeben werden. MeasureCalls to Measure on child elements should pass either the same availableSize as the parent, or a subset of the area, depending on the type of layout the parent element supports. Beispielsweise ist es zulässig, den Bereich für einen Element spezifischen Rahmen, eine Bild Lauf Leiste oder ein benutzerdefiniertes Steuerelement zu entfernen.For example, it would be valid to remove the area for an element-specific border or padding, a scrollbar, or a custom control.

Hinweise

Es ist eher üblich, ein Element von FrameworkElement UIElementanstelle von abzuleiten.It is more common to derive an element from FrameworkElement rather than UIElement. Wenn Sie von ableiten, FrameworkElementbeachten Sie, dass die MeasureCore - MeasureCore Methode FrameworkElement durch eine Überschreibung von auf versiegelt wird.If you are deriving from FrameworkElement, note that an override of MeasureCore on FrameworkElement seals the MeasureCore method. Daher überschreiben MeasureCore Sie nur die Möglichkeit, layoutmeasurenschaften zu ändern, wenn Sie von durch eine Vererbung FrameworkElementvon UIElement abgeleitet werden, die nicht einschließt.Therefore, you only override MeasureCore as a means to alter layout measure characteristics if you derive from UIElement through an inheritance that does not include FrameworkElement. Dies kann der Fall sein, wenn Sie versuchen, eine eigene Implementierung auf der WPFWPF Kernebene zu erstellen.This might be the case if you are attempting to build your own implementation on the WPFWPF core-level. Andernfalls ist die Implementierungs Vorlage für das FrameworkElementMeasure-Verhalten die FrameworkElement Implementierung von, wenn Sie von ableiten.MeasureOverrideOtherwise, if you are deriving from FrameworkElement, then the implementation template for Measure behavior is the FrameworkElement implementation of .MeasureOverride.

Ein übergeordnetes Element mit untergeordneten Elementen Measure muss für jedes untergeordnete Element aufgerufen werden. andernfalls werden diese untergeordneten Elemente nicht vergrößert oder angeordnet und werden aus dem Layout entfernt.A parent element with child elements must call Measure on each child, otherwise these child elements are not sized or arranged and will effectively disappear from layout.

Hinweise für Vererber

Implementierungen müssen einen für availableSize bereitgestellten Wert verarbeiten können, der unendlich ist.Implementations must be able to process a value provided for availableSize that is infinite. Ein unendlicher Wert gibt keine angeforderten Einschränkungen an und schränkt die Maßeinheit für das übergeordnete Element durch rekursive Measure-Aufrufe ein.An infinite value indicates no requested constraints, and effectively defers measurement choice to the parent element, through recursive Measure calls.

Implementierungen können den für availableSize bereitgestellten Wert als weiche Einschränkung in Erwägung gezogen.Implementations can consider the value provided for availableSize to be a soft constraint. Das untergeordnete-Element kann eine größere Größe angeben, auch wenn andere Aspekte des Anwendungs Codes die aktuelle tatsächliche Größe des übergeordneten Elements ermitteln konnten.The child element might specify a larger size, even if other aspects of application code were able to determine the current actual size of the parent element. Bei der Anforderung für große Größe handelt es sich um eine Konvention, die angibt, dass das untergeordnete Element abfragt, ob das übergeordnete Element das Scrollen von Inhalten in einem Inhalts Anzeigebereich unterstütztThe large size request is a convention that indicates that the child element is querying whether your parent element can support content scrolling within a content display region.

Gilt für: