UIElement.ArrangeCore(Rect) Метод

Определение

Определяет шаблон для определения макета упорядочивания WPF уровня ядра.

protected:
 virtual void ArrangeCore(System::Windows::Rect finalRect);
protected virtual void ArrangeCore (System.Windows.Rect finalRect);
abstract member ArrangeCore : System.Windows.Rect -> unit
override this.ArrangeCore : System.Windows.Rect -> unit
Protected Overridable Sub ArrangeCore (finalRect As Rect)

Параметры

finalRect
Rect

Итоговая область в родительском элементе, которую элемент должен использовать для размещения себя и своих дочерних элементов.

Примеры

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

protected override void ArrangeCore(Rect finalRect)
{
     //Call base, it will set offset and RenderBounds to the finalRect:
     base.ArrangeCore(finalRect);
     foreach (UIElement child in VisualChildren)
     {
         child.Arrange(new Rect(childX, childY, childWidth, childHeight));
     }
 }
Protected Overrides Sub ArrangeCore(ByVal finalRect As Rect)
     'Call base, it will set offset and RenderBounds to the finalRect:
     MyBase.ArrangeCore(finalRect)
     For Each child As UIElement In VisualChildren
         child.Arrange(New Rect(childX, childY, childWidth, childHeight))
     Next child
End Sub

Комментарии

Примечание

Переопределение этого метода подходит только в том случае, если вы наследуете на уровне ядра WPF, и вы не используете систему макета на уровне платформы WPF и FrameworkElement производный класс, так как FrameworkElement запечатки ArrangeCore. Если вы используете систему макета на уровне платформы WPF, соответствующий метод переопределения для поведения упорядочения макета для конкретного класса.ArrangeOverride

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

Если вы разрабатываете элементы на уровне ядра WPF, следует переопределить этот метод, чтобы предоставить элементу уровня ядра WPF уникальное поведение макета или принять правильные решения о макете дочерних элементов элементов. Переопределение может потребоваться, если эти дочерние элементы не распознаются из определенного шаблона, ItemCollectionнапример.

Родительский элемент должен вызывать класс для Arrange(Rect) каждого дочернего элемента, в противном случае эти дочерние элементы не отображаются.

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