Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

UIElement.MeasureCore-Methode: (Size)

 

Veröffentlicht: Oktober 2016

Ruft beim Überschreiben in einer abgeleiteten Klasse stellt die Messung Logik zum Anpassen dieses Elements ordnungsgemäß mit Berücksichtigung der Größe des Inhalts sämtlicher untergeordneter Elemente.

Namespace:   System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)

protected virtual Size MeasureCore(
	Size availableSize
)

Parameter

availableSize
Type: System.Windows.Size

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

Rückgabewert

Type: System.Windows.Size

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

Es ist üblicher, leiten Sie ein Element aus FrameworkElement statt UIElement. Wenn beim Ableiten von FrameworkElement, beachten Sie, dass das Überschreiben der MeasureCore auf FrameworkElement Siegel der MeasureCore Methode. Daher nur überschreiben MeasureCore als Mittel zum Measure Layouteigenschaften alter, bei der Ableitung von UIElement über eine Vererbung, die nicht FrameworkElement. Dies kann der Fall sein, wenn Sie versuchen, eine eigene Implementierung erstellen, auf die WPF Kern-Ebene. Wenn beim Ableiten von FrameworkElement, dann ist die Implementierungsvorlage für das Measure-Verhalten die FrameworkElement Implementierung von.MeasureOverride.

Rufen Sie ein übergeordnetes Element mit untergeordneten Elementen muss Measure für jedes untergeordnete Element ist, andernfalls diese untergeordneten Elemente nicht angepasst oder angeordnet und effektiv aus dem Layout entfernt wird.

Hinweise für Vererber:

Implementierungen müssen in der Lage, einen Wert für verarbeiten availableSize unendlich ist. Ein unendlichen Wert gibt keine angeforderten Einschränkungen und effektiv verzögert Messung Wahl zum übergeordneten Element, über rekursiver Measure aufruft.

Implementierungen können in Betracht ziehen den für angegebenen Wert availableSize eine weiche Einschränkung sein. Das untergeordnete Element kann eine größere Größe angeben, selbst wenn andere Aspekte des Anwendungscodes die aktuelle tatsächliche Größe des übergeordneten Elements bestimmen können. Die Groß-Anforderung ist eine Konvention, die angibt, dass das untergeordnete Element abfragt, ob das übergeordnete Element Bildlaufvorgänge für Inhalte in einer Region Inhaltsanzeige unterstützt.

Eine Regel zum Überschreiben der MeasureCore folgt diesem Muster ungefähre (es ist keine integrierte Auflistung aufgerufen VisualChildren; VisualChildren ist ein Platzhalter, der beliebige untergeordnete Auflistung darstellt, das Element behält).

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;
}
  • Sie müssen Aufrufen Measure für jedes untergeordnete Element.

  • Im Allgemeinen sollten die Implementierung Zwischenspeichern Messung Informationen zwischen den MeasureCore und ArrangeCore Methodenaufrufe in demselben Element.

  • Aufrufen von grundlegenden Implementierungen von MeasureCore ist nicht erforderlich, aber möglicherweise angemessen, wenn die basisimplementierung eine gewünschte Layout bietet.

  • Aufrufe von Measure für untergeordnete Elemente sollten übergeben Sie entweder den gleichen availableSize als das übergeordnete Element oder eine Teilmenge des Bereichs, abhängig vom Layout des übergeordneten Elements unterstützt. Beispielsweise wäre es zulässig, die Fläche für einen elementspezifischen Rahmen oder Leerstellen, eine Bildlaufleiste oder ein benutzerdefiniertes Steuerelement zu entfernen.

.NET Framework
Verfügbar seit 3.0
Zurück zum Anfang
Anzeigen: