UIElement.Measure(Size) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обновляет DesiredSize элемента UIElement. Родительские элементы вызывают этот метод из своей собственной реализации MeasureCore(Size) для формирования рекурсивного обновление макета. Вызов этого метода составляет первый проход (проход "Мера") обновления макета.
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
Доступное пространство, которое родительский элемент может выделить дочернему элементу. Дочерний элемент может запросить больше пространства, чем доступно; указанный размер может быть размещен, если для текущего элемента в модели содержимого возможна прокрутка.
Комментарии
Вычисление размещения макета в Windows Presentation Foundation (WPF) состоит из Measure вызова и Arrange вызова. Measure Во время вызова элемент определяет требования к размеру с помощью входных availableSize
данных. Arrange Во время вызова размер элемента завершается.
availableSize
может быть любым числом от нуля до бесконечного. Элементы, участвующие в макете, должны возвращать минимальное Size значение, необходимое для заданного availableSize
объекта.
При первом создании макета он всегда получает Measure вызов.Arrange Однако после первого прохода макета он может получить Arrange вызов без вызова Measure; это может произойти, если свойство, влияющее только Arrange на изменение (например, выравнивание), или когда родитель получает без Arrange него Measure. Вызов Measure автоматически отменит Arrange вызов.
Обновления макета выполняются асинхронно, поэтому основной поток не ожидает каждого возможного изменения макета. Запрос элемента с помощью проверки кода программной части значений свойств может не сразу отражать изменения свойств, взаимодействующих с характеристиками размера или макета ( Width например, свойство).
Примечание
Обновления макета можно принудительно выполнить с помощью UpdateLayout метода. Однако вызов этого метода обычно не требуется и может привести к снижению производительности.
Система макетов хранит две отдельные очереди недопустимых макетов: один для Measure и один для Arrange. Очередь макета сортируется в зависимости от порядка элементов в визуальном дереве элемента, выполняющего макет; элементы выше в дереве находятся в верхней части очереди, чтобы избежать избыточных макетов, вызванных повторяемыми изменениями в родительских элементах. Повторяющиеся записи автоматически удаляются из очереди, а элементы автоматически удаляются из очереди, если они уже проверены макетом.
При обновлении макета Measure очередь очищается сначала, а затем очередь Arrange . Элемент в Arrange очереди никогда не будет упорядочен, если в Measure очереди есть элемент.