UIElement.Measure(Size) UIElement.Measure(Size) UIElement.Measure(Size) UIElement.Measure(Size) Method

Определение

Обновляет DesiredSize элемента UIElement.Updates the DesiredSize of a UIElement. Родительские элементы вызывают этот метод из своей собственной реализации MeasureCore(Size) для формирования рекурсивного обновление макета.Parent elements call this method from their own MeasureCore(Size) implementations to form a recursive layout update. Вызов этого метода составляет первый проход (проход "Мера") обновления макета.Calling this method constitutes the first pass (the "Measure" pass) of a layout update.

public:
 void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)

Параметры

availableSize
Size Size Size Size

Доступное пространство, которое родительский элемент может выделить дочернему элементу.The available space that a parent element can allocate a child element. Дочерний элемент может запросить больше пространства, чем доступно; указанный размер может быть размещен, если для текущего элемента в модели содержимого возможна прокрутка.A child element can request a larger space than what is available; the provided size might be accommodated if scrolling is possible in the content model for the current element.

Комментарии

Расположение макета в вычислении Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) состоит из Measure вызова и Arrange вызова.Computation of layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) is comprised of a Measure call and an Arrange call. Во время Measure вызове, элемент определяет его к размеру, при помощи availableSize ввода.During the Measure call, an element determines its size requirements by using an availableSize input. Во время Arrange завершения вызова, требуемый размер элемента.During the Arrange call, the element size is finalized.

availableSize может быть любое число от нуля до бесконечности.availableSize can be any number from zero to infinite. Элементы, которые участвуют в макете должен вернуть минимальное значение Size они требуют для заданного availableSize.Elements participating in layout should return the minimum Size they require for a given availableSize.

Если сначала создается макет, оно всегда получает Measure вызвать перед Arrange.When a layout is first instantiated, it always receives a Measure call before Arrange. Тем не менее, после первого прохода макета, оно может получить Arrange вызывается без Measure; это может произойти, если свойство, которое влияет только на Arrange изменяется (например, выравнивание), или когда Получает родительский Arrange без Measure.However, after the first layout pass, it may receive an Arrange call without a Measure; this can happen when a property that affects only Arrange is changed (such as alignment), or when the parent receives an Arrange without a Measure. Объект Measure автоматически сделает вызов Arrange вызова.A Measure call will automatically invalidate an Arrange call.

Обновления структуры происходят асинхронно, таким образом, что основной поток не находится в состоянии для каждого из возможных изменений структуры.Layout updates happen asynchronously, such that the main thread is not waiting for every possible layout change. Запрос элемента посредством кода программной части, проверка значений свойств может не сразу отражать изменения свойств, которые взаимодействуют с характеристиками размера или структуры ( Width свойство, например).Querying an element via code-behind checking of property values may not immediately reflect changes to properties that interact with the sizing or layout characteristics (the Width property, for example).

Примечание

Обновления макета можно принудительно с помощью UpdateLayout метод.Layout updates can be forced by using the UpdateLayout method. Тем не менее вызов этого метода обычно не требуется и может привести к снижению производительности.However, calling this method is usually unnecessary and can cause poor performance.

Система макета сохраняет две отдельные очереди недопустимый макетов, один для Measure и один для Arrange.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. Очередь структур сортируется порядок элементов в визуальном дереве структурирования элементов; элементы, расположенные выше в дереве находятся в начале очереди, чтобы избежать избыточного макеты, из-за повторяющихся изменений в родительских элементов.The layout queue is sorted based upon the order of elements in the visual tree of the element performing layout; elements higher in the tree are at the top of the queue, to avoid redundant layouts caused by repeated changes in parents. Повторяющиеся записи автоматически удаляются из очереди, а элементы автоматически удаляются из очереди, если они уже прошли проверку макета.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already layout-validated.

При обновлении макета, Measure освобождения очереди во-первых, за которым следует Arrange очереди.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Элемент в Arrange никогда не будет организован очереди, если элемент в Measure очереди.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

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