FrameworkElement.MeasureOverride(Size) Метод

Определение

При переопределении в производном классе измеряет размер в структуре, требуемый для дочерних элементов, и определяет размер для класса, производного от FrameworkElement.

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

Доступный размер, который этот элемент может предоставить дочерним элементам. Можно задать бесконечное значение, указав таким образом, что элемент будет масштабироваться в соответствии с любым содержимым.

Возвращаемое значение

Size

Размер, определяемый данным элементом для своих потребностей во время структурирования на основе вычисления размеров дочерних элементов.

Комментарии

ПереопределитеMeasureOverride, чтобы реализовать пользовательское поведение изменения размера макета для элемента, так как он участвует в системе макета Windows Presentation Foundation (WPF). Реализация должна выполнять следующие действия.

  1. Выполните итерацию определенной коллекции дочерних элементов элемента, которые являются частью макета, вызовите Measure каждый дочерний элемент.

  2. Сразу же получите DesiredSize дочерний элемент (он задается как свойство после Measure вызова).

  3. Вычисляет чистый требуемый размер родительского объекта на основе измерения дочерних элементов.

Возвращаемое значение MeasureOverride должно быть собственным требуемым размером элемента, которое затем становится входным значением меры для родительского элемента текущего элемента. Этот же процесс продолжается в системе макета до достижения корневого элемента страницы.

Во время этого процесса дочерние элементы могут возвращать больший DesiredSize размер, чем начальный availableSize , чтобы указать, что дочерний элемент хочет больше места. Это может быть обработано в собственной реализации, введя прокручиваемую область, изменив размер родительского элемента управления, установив определенный порядок с накоплением или любое количество решений для измерения или упорядочения содержимого.

Важно!

Элементы должны вызываться Measure для каждого дочернего элемента во время этого процесса, в противном случае дочерние элементы не будут иметь правильного размера или упорядочения.

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

В следующем некомпилированном коде показан этот шаблон реализации. VisualChildren представляет перечисляемое свойство коллекции дочерних элементов, которое должен определять собственный элемент. Свойство можно назвать любым именем. VisualChildren — это имя заполнителя в этом примере, VisualChildren не является API, предоставляемым WPF или частью шаблона именования.

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