FrameworkElement.MeasureOverride(Size) Metoda

Definicja

Gdy jest zastępowany w klasie pochodnej, mierzy rozmiar w układzie wymaganym dla elementów podrzędnych i określa rozmiar FrameworkElement klasy pochodnej.When overridden in a derived class, measures the size in layout required for child elements and determines a size for the FrameworkElement-derived class.

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

Parametry

availableSize
Size

Dostępny rozmiar, który ten element może przydzielić do elementów podrzędnych.The available size that this element can give to child elements. Nieskończoność można określić jako wartość, aby wskazać, że element będzie miał rozmiar do dowolnej dostępnej zawartości.Infinity can be specified as a value to indicate that the element will size to whatever content is available.

Zwraca

Size

Rozmiar, jaki ten element określa potrzebę podczas układania, na podstawie jego obliczeń rozmiarów elementów podrzędnych.The size that this element determines it needs during layout, based on its calculations of child element sizes.

Uwagi

Zastąp, MeasureOverride Aby zaimplementować niestandardowe zachowanie ustalania wielkości układu dla elementu w miarę uczestniczenia w Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) systemie układu.Override MeasureOverride to implement custom layout sizing behavior for your element as it participates in the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) layout system. Implementacja powinna wykonywać następujące czynności:Your implementation should do the following:

  1. Wykonaj iterację określonej kolekcji elementów podrzędnych, które są częścią układu, wywołaj Measure dla każdego elementu podrzędnego.Iterate your element's particular collection of children that are part of layout, call Measure on each child element.

  2. Natychmiast Uzyskaj DesiredSize w elemencie podrzędnym (jest to ustawienie jako właściwość po Measure wywołaniu).Immediately get DesiredSize on the child (this is set as a property after Measure is called).

  3. Oblicza żądany rozmiar sieci nadrzędnej na podstawie pomiaru elementów podrzędnych.Compute the net desired size of the parent based upon the measurement of the child elements.

Zwracana wartość MeasureOverride powinna być własnym wymaganym rozmiarem elementu, który następnie zmienia dane wejściowe miary dla elementu nadrzędnego bieżącego elementu.The return value of MeasureOverride should be the element's own desired size, which then becomes the measure input for the parent element of the current element. Ten sam proces jest kontynuowany przez system układu do momentu osiągnięcia elementu głównego strony.This same process continues through the layout system until the root element of the page is reached.

W trakcie tego procesu elementy podrzędne mogą zwrócić większy DesiredSize rozmiar niż początkowy, availableSize Aby wskazać, że element podrzędny potrzebuje większej ilości miejsca.During this process, child elements might return a larger DesiredSize size than the initial availableSize to indicate that the child element wants more space. Może to być obsługiwane we własnej implementacji przez wprowadzenie przewijanego regionu, zmieniając rozmiar kontrolki nadrzędnej, przez ustalenie kolejności stosu lub dowolnej liczby rozwiązań do mierzenia lub rozmieszczania zawartości.This might be handled in your own implementation by introducing a scrollable region, by resizing the parent control, by establishing some manner of stacked order, or any number of solutions for measuring or arranging content.

Ważne

Elementy powinny Measure być wywoływane dla każdego elementu podrzędnego w trakcie tego procesu; w przeciwnym razie elementy podrzędne nie będą poprawnie skalowane ani uporządkowane.Elements should call Measure on each child during this process, otherwise the child elements will not be correctly sized or arranged.

Uwagi dotyczące dziedziczenia

Poniższy kod niekompilowania pokazuje ten wzorzec implementacji.The following non-compiling code shows this implementation pattern. VisualChildren reprezentuje wyliczalną Właściwość kolekcji elementów podrzędnych, które należy zdefiniować dla Twojego elementu.VisualChildren represents an enumerable collection property of children that your own element should define. Właściwość może mieć nazwę wszystko.The property can be named anything. VisualChildren to nazwa symbolu zastępczego dla celów tego przykładu, VisualChildren nie jest interfejsem API, który jest udostępniony przez WPFWPF lub częścią wzorca nazewnictwa.VisualChildren is a placeholder name for purposes of this example, VisualChildren is not an API as provided by WPFWPF or a part of a naming pattern.

[! code-CSharpCorePseudocode # FEMeasureOverride] [! code — VBCorePseudocode # FEMeasureOverride][!code-csharpCorePseudocode#FEMeasureOverride] [!code-vbCorePseudocode#FEMeasureOverride]

Dotyczy