UIElement.Arrange(Rect) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Posiciona elementos filhos e determina um tamanho para um UIElement. Os elementos pais chamam este método a partir da sua implementação ArrangeCore(Rect) (ou de um equivalente ao nível do framework WPF) para formar uma atualização recursiva do layout. Este 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 pai calcula para o elemento filho, fornecido como uma Rect instância.
Observações
Para WPF cenários de derivação de elementos ao nível do framework, o comportamento para Arrange não deve (e não pode, a menos que faça shadowing) ser alterado. Em vez disso, deves sobrepor a ArrangeOverride implementação na tua turma. A sua implementação ArrangeOverride é chamada internamente por Arrange como parte das operações padrão de layout ao nível do framework WPF. A sua ArrangeCore implementação deve também chamar ArrangeOverride cada elemento filho, se tiver elementos filhos.
Para WPF cenários de derivação de elementos ao nível principal, o comportamento para Arrange não deve (e não pode, a menos que faça shadowing) ser alterado. Em vez disso, deves anular ArrangeCore na tua aula. A sua implementação ArrangeCore é chamada internamente por Arrange como parte das operações padrão de layout ao nível do framework WPF. No entanto, isto assume que está a usar WPF layout ao nível da framework e o seu sistema de layout, o que muitas vezes não acontece se estiver a derivar elementos especificamente ao nível WPF núcleo a partir da classe base UIElement element. A sua ArrangeCore implementação deve também chamar Arrange cada elemento filho, se tiver elementos filhos. Note que o cenário WPF ao nível básico implica que não está a usar uma classe derivada FrameworkElement, porque FrameworkElement sela ArrangeCore.
O cálculo de WPF posicionamento de layout ao nível da framework em Windows Presentation Foundation (WPF) consiste numa chamada Measure e numa chamada Arrange. 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. Para mais informações, consulte a Disposição.
availableSize pode ser qualquer número de zero a infinito. Os elementos a dispor retornam o mínimo Size que exigem através do availableSize parâmetro.
Quando um layout é instanciado pela primeira vez, recebe sempre uma Measure chamada antes Arrangede . No entanto, após a primeira passagem do layout, pode receber uma Arrange chamada sem um Measure; isto pode acontecer quando uma propriedade que afeta apenas Arrange é alterada (como o alinhamento), ou quando o progenitor recebe um Arrange sem um Measure. Uma Measure chamada invalida automaticamente uma Arrange chamada.
As atualizações de layout geralmente ocorrem de forma assíncrona (num momento determinado pelo sistema de layout). Um elemento pode não refletir imediatamente alterações às propriedades que afetam o dimensionamento do elemento (como Width).
Note
As atualizações de layout podem ser forçadas usando o UpdateLayout método; no entanto, não é recomendado chamar esta função, pois normalmente é desnecessária e pode causar desempenho fraco. Em muitas situações em que a chamada UpdateLayout pode ser apropriada, o sistema de layout provavelmente já estará a processar atualizações. O sistema de layout pode processar alterações de layout de forma a 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 está ordenada com base na ordem dos elementos na árvore visual. Os elementos mais altos na árvore estão no topo da fila, para evitar layouts redundantes causados por mudanças repetidas nos pais. Entradas duplicadas são automaticamente removidas da fila, e os elementos são automaticamente removidos 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.