Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Метод UIElement.Arrange (Rect)

 

Опубликовано: Октябрь 2016

Размещает дочерние элементы и определяет размер для UIElement. Родительские элементы вызывают этот метод из своей реализации ArrangeCore (или эквивалента уровня инфраструктуры WPF) для формирования рекурсивного обновление макета. Этот метод образует второй проход обновления макета.

Пространство имен:   System.Windows
Сборка:  PresentationCore (в PresentationCore.dll)

public void Arrange(
	Rect finalRect
)

Параметры

finalRect
Type: System.Windows.Rect

Окончательный размер, вычисляемый родительским элементом для дочернего элемента, представленного в виде экземпляра Rect.

Для элемента уровня платформы WPF, сценариям, поведение для произведения Arrange изменить не следует (и не может, если скрытии. Вместо этого необходимо переопределить ArrangeOverride реализации в классе. Ваш ArrangeOverride Реализация вызывается внутренне Arrange как часть операций компоновки уровня инфраструктуры WPF по умолчанию. Ваш ArrangeCore Реализация должна вызывать также ArrangeOverride на каждый дочерний элемент, если он имеет дочерние элементы.

Для элемента уровня ядра WPF, сценариям, поведение для произведения Arrange изменить не следует (и не может, если скрытии. Вместо этого необходимо переопределить ArrangeCore в классе. Ваш ArrangeCore Реализация вызывается внутренне Arrange как часть операций компоновки уровня инфраструктуры WPF по умолчанию. Тем не менее, это предполагается используется макет уровня инфраструктуры WPF и его структурирования, это часто не так, если специально наследовании элементов на уровне ядра из WPF UIElement базовый класс элемента. Ваш ArrangeCore Реализация должна вызывать также Arrange на каждый дочерний элемент, если он имеет дочерние элементы. Обратите внимание, что сценарии уровня ядра WPF предполагает, что вы не используете FrameworkElement производного класса, поскольку FrameworkElement печати ArrangeCore.

Вычисление макета уровня инфраструктуры WPF, размещение в Windows Presentation Foundation (WPF) состоит из Measure вызова и Arrange вызова. Во время Measure вызов, система макета определяет требования к размеру элемента, используя предоставленную Size (availableSize) аргумента. Во время Arrange вызов, система макета завершает размер и положение элемента ограничивающего прямоугольника. Дополнительные сведения см. в разделе макета.

availableSize может быть любым числом от нуля до бесконечности. Элементы размещаются вернуть минимальное значение Size они требуют через availableSize параметр.

Если сначала создается макет, он всегда получает Measure вызывать перед Arrange. Однако после первого прохода макета, он может получить Arrange вызова без Measure; Это может произойти, если свойство, которое затрагивает только Arrange изменяется (например, выравнивание), или при получении родительского Arrange без Measure. A Measure автоматически сделает вызов Arrange вызова.

Обновления структуры обычно происходят асинхронно (во время, определяемое системой структуры). Элемент не может сразу отражать изменения свойств, влияющих на изменение размера элемента (например, Width).

System_CAPS_noteПримечание

Обновления макета можно принудительно с помощью UpdateLayout метод; тем не менее, вызов этой функции не рекомендуется, как это обычно нет необходимости, может привести к снижению производительности. Во многих ситуациях, где вызов UpdateLayout может быть целесообразным, система макета будет, вероятно, уже обработки обновлений. Система структуры может обрабатывать изменения структуры способом, оптимизирующим все необходимые обновления как часть пакета.

Система макета держит две отдельные очереди недопустимый макетов, один для Measure и Arrange. Очередь структур сортируется порядок элементов в визуальном дереве. Элементы, расположенные выше в дереве, вверху очереди, во избежание избыточного структурирования повторяющихся изменений в родительских элементах. Дублирующиеся записи автоматически удаляются из очереди, а элементы автоматически удаляются из очереди, если они уже являются допустимыми.

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

.NET Framework
Доступно с 3.0
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Вернуться в начало
Показ: