Compartilhar via


UIElement.Arrange(Rect) Método

Definição

Posiciona elementos filho e determina um tamanho para um UIElement. Elementos pai chamam esse método de sua própria implementação ArrangeCore(Rect) (ou um equivalente no nível de estrutura WPF) para formar uma atualização de layout recursiva. Esse método constitui a segunda passagem de uma atualização de layout.

public:
 void Arrange(System::Windows::Rect finalRect);
public void Arrange (System.Windows.Rect finalRect);
member this.Arrange : System.Windows.Rect -> unit
Public Sub Arrange (finalRect As Rect)

Parâmetros

finalRect
Rect

O tamanho final que o elemento pai computa para o filho, fornecido como uma instância Rect.

Comentários

Para cenários de derivação de elemento de nível de estrutura do WPF, o comportamento para Arrange não deve (e não pode, a menos que você sombra) seja alterado. Em vez disso, você deve substituir a ArrangeOverride implementação em sua classe. Sua ArrangeOverride implementação é chamada internamente por Arrange meio de operações de layout padrão no nível da estrutura do WPF. Sua ArrangeCore implementação também deve chamar ArrangeOverride cada elemento filho, se ele tiver elementos filho.

Para cenários de derivação de elemento de nível central do WPF, o comportamento para Arrange o qual não deve (e não pode, a menos que você sombra) seja alterado. Em vez disso, você deve substituir ArrangeCore em sua classe. Sua ArrangeCore implementação é chamada internamente por Arrange meio de operações de layout padrão no nível da estrutura do WPF. No entanto, isso pressupõe que você esteja usando o layout de nível de estrutura do WPF e seu sistema de layout, o que geralmente não é o caso se você estiver derivando especificamente elementos no nível principal do WPF da UIElement classe de elemento base. Sua ArrangeCore implementação também deve chamar Arrange cada elemento filho, se ele tiver elementos filho. Observe que o cenário de nível central do WPF implica que você não está usando uma FrameworkElement classe derivada, porque FrameworkElement sela ArrangeCore.

A computação do posicionamento de layout no nível da estrutura do WPF em Windows Presentation Foundation (WPF) consiste em uma Measure chamada e uma Arrange chamada. Durante a Measure chamada, o sistema de layout determina os requisitos de tamanho de um elemento usando um argumento fornecido Size (availableSize). Durante a Arrange chamada, o sistema de layout finaliza o tamanho e a posição da caixa delimitadora de um elemento. Veja Layout para obter mais informações.

availableSize pode ser qualquer número de zero a infinito. Os elementos a serem dispostos retornam o mínimo Size necessário por meio do availableSize parâmetro.

Quando um layout é instanciado pela primeira vez, ele sempre recebe uma Measure chamada antes Arrange. No entanto, após a primeira passagem de layout, ele pode receber uma Arrange chamada sem uma Measure; isso pode acontecer quando uma propriedade que afeta somente Arrange é alterada (como alinhamento) ou quando o pai recebe um Arrange sem um Measure. Uma Measure chamada invalidará automaticamente uma Arrange chamada.

As atualizações de layout geralmente ocorrem de forma assíncrona (em um momento determinado pelo sistema de layout). Um elemento pode não refletir imediatamente as alterações nas propriedades que afetam o dimensionamento de elementos (como Width).

Observação

As atualizações de layout podem ser forçadas usando o UpdateLayout método; no entanto, chamar essa função não é recomendável, pois geralmente é desnecessária e pode causar um desempenho ruim. Em muitas situações em que a chamada UpdateLayout pode ser apropriada, o sistema de layout provavelmente já estará processando atualizações. O sistema de layout pode processar alterações de layout de uma maneira que possa otimizar todas as atualizações necessárias como parte de um pacote.

O sistema de layout mantém duas filas separadas de layouts inválidos, uma para Measure e outra para Arrange. A fila de layout é classificada com base na ordem dos elementos na árvore visual. Elementos mais altos na árvore estão na parte superior da fila, a fim de evitar layouts redundantes causados por alterações repetidas nos pais. As entradas duplicadas serão removidas automaticamente da fila e os elementos serão removidos automaticamente da fila se já forem válidos.

Ao atualizar o layout, a Measure fila é esvaziada primeiro, seguida pela Arrange fila. Um elemento na Arrange fila nunca será organizado se houver um elemento na Measure fila.

Aplica-se a