FrameworkElement.MeasureOverride(Size) Метод

Определение

При переопределении в производном классе измеряет размер в структуре, требуемый для дочерних элементов, и определяет размер для класса, производного от FrameworkElement.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

Параметры

availableSize
Size

Доступный размер, который этот элемент может предоставить дочерним элементам.The available size that this element can give to child elements. Можно задать бесконечное значение, указав таким образом, что элемент будет масштабироваться в соответствии с любым содержимым.Infinity can be specified as a value to indicate that the element will size to whatever content is available.

Возвраты

Размер, определяемый данным элементом для своих потребностей во время структурирования на основе вычисления размеров дочерних элементов.The size that this element determines it needs during layout, based on its calculations of child element sizes.

Комментарии

Переопределите MeasureOverride, чтобы реализовать поведение пользовательского изменения размера макета для элемента, когда он участвует в системе макета Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF).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. Ваша реализация должна выполнить следующие действия:Your implementation should do the following:

  1. Выполните итерацию определенной коллекции элементов, являющихся частью макета, вызовите Measure для каждого дочернего элемента.Iterate your element's particular collection of children that are part of layout, call Measure on each child element.

  2. Немедленно получить DesiredSize для дочернего элемента (это свойство устанавливается после вызова Measure).Immediately get DesiredSize on the child (this is set as a property after Measure is called).

  3. Вычислите требуемый общий размер родителя на основе измерения дочерних элементов.Compute the net desired size of the parent based upon the measurement of the child elements.

Возвращаемое значение MeasureOverride должно быть собственным требуемым размером элемента, который затем станет входным значением меры для родительского элемента текущего элемента.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. Этот процесс проходит через систему макета до тех пор, пока не будет достигнут корневой элемент страницы.This same process continues through the layout system until the root element of the page is reached.

Во время этого процесса дочерние элементы могут возвращать больший размер DesiredSize, чем начальный availableSize, чтобы указать, что дочернему элементу требуется дополнительное пространство.During this process, child elements might return a larger DesiredSize size than the initial availableSize to indicate that the child element wants more space. Это может быть обработано в собственной реализации путем представления прокручиваемой области путем изменения размера родительского элемента управления путем установки определенного способа упорядочения с накоплением или любого числа решений для измерения или упорядочения содержимого.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.

Важно!

Во время этого процесса элементы должны вызывать Measure для каждого дочернего элемента, в противном случае размер дочерних элементов будет неверно изменен или упорядочен.Elements should call Measure on each child during this process, otherwise the child elements will not be correctly sized or arranged.

Примечания для тех, кто наследует этот метод

Следующий некомпилируемый код показывает этот шаблон реализации.The following non-compiling code shows this implementation pattern. VisualChildren представляет свойство перечислимой коллекции дочерних элементов, которые должен определить ваш собственный элемент.VisualChildren represents an enumerable collection property of children that your own element should define. Свойству можно присвоить любое имя.The property can be named anything. VisualChildren — это имя заполнителя для данного примера, VISUALCHILDREN не является API, предоставленным WPFWPF или частью шаблона именования.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.

[! код-CSharpкорепсеудокоде # фемеасуреоверриде] [! code-VBкорепсеудокоде # фемеасуреоверриде][!code-csharpCorePseudocode#FEMeasureOverride] [!code-vbCorePseudocode#FEMeasureOverride]

Применяется к