UIElement.Measure(Size) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
DesiredSize Обновляет объект UIElement. Родительские элементы вызывают этот метод из собственных MeasureCore(Size) реализаций для формирования рекурсивного обновления макета. Вызов этого метода представляет собой первый проход (проход Measure) обновления макета.
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 очереди есть элемент.