Compartilhar via


UIElement.ArrangeCore(Rect) Método

Definição

Define o modelo para a definição de layout de disposição de nível de núcleo do 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)

Parâmetros

finalRect
Rect

A área final no pai que esse elemento deve usar para organizar a si próprio e seus filhos.

Exemplos

ArrangeCore as implementações devem chamar a implementação base para retornar um tamanho, chamar o Arrange método de cada elemento filho visível e reconciliar os tamanhos retornados por essas Arrange chamadas com o tamanho da implementação base. A lógica para o aspecto de reconciliação de uma ArrangeCore implementação pode variar, dependendo das características de layout do elemento. No modelo de exemplo a seguir, VisualChildren é uma propriedade hipotética que seu elemento pode definir para ajudar a enumerar seu conteúdo; UIElement não define coleções de conteúdo nesse nível, a arquitetura de nível de estrutura do WPF adia o comportamento do conteúdo para elementos derivados, como controles específicos ou classes base de controle.

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

Comentários

Observação

Substituir esse método só será apropriado se você estiver derivando no nível principal do WPF e não estiver usando o sistema de layout de nível de estrutura do WPF e FrameworkElement a classe derivada, porque FrameworkElement sela ArrangeCore. Se você estiver usando o sistema de layout no nível da estrutura do WPF, o método apropriado para substituir o comportamento de organização de layout específico da classe será ArrangeOverride.

Notas aos Herdeiros

Se você estiver desenvolvendo elementos no nível principal do WPF, deverá substituir esse método para dar ao elemento de nível central do WPF um comportamento de layout de organização exclusivo ou tomar decisões de layout adequadas sobre os elementos filho de seus elementos. Uma substituição pode ser necessária se esses elementos filho não forem reconhecíveis de um padrão definido, como um ItemCollection.

Um elemento pai deve chamar a classe específica Arrange(Rect) em cada elemento filho, caso contrário, esses elementos filho não serão renderizados.

Aplica-se a