Compartilhar via


UIElement.Measure(Size) Método

Definição

Atualiza DesiredSize de um UIElement. Elementos pai chamam esse método de suas próprias implementações MeasureCore(Size) para formar uma atualização de layout recursiva. Chamar esse método constitui a primeira passagem (a passagem "Medida") de uma atualização de layout.

public:
 void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)

Parâmetros

availableSize
Size

O espaço disponível que um elemento pai pode alocar um elemento filho. Um elemento filho pode solicitar um espaço maior do que o disponível. O tamanho fornecido pode ser acomodado se a rolagem for possível no modelo de conteúdo do elemento atual.

Comentários

A computação do posicionamento de layout no WPF (Windows Presentation Foundation) é composta por uma Measure chamada e uma Arrange chamada. Durante a Measure chamada, um elemento determina seus requisitos de tamanho usando uma availableSize entrada. Durante a Arrange chamada, o tamanho do elemento é finalizado.

availableSize pode ser qualquer número de zero a infinito. Os elementos participantes do layout devem retornar o mínimo Size necessário para determinado availableSize.

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

As atualizações de layout ocorrem de forma assíncrona, de modo que o thread principal não esteja aguardando todas as alterações de layout possíveis. Consultar um elemento por meio da verificação code-behind de valores de propriedade pode não refletir imediatamente as alterações nas propriedades que interagem com as características de dimensionamento ou layout (a Width propriedade, por exemplo).

Observação

As atualizações de layout podem ser forçadas usando o UpdateLayout método. No entanto, chamar esse método geralmente é desnecessário e pode causar um desempenho ruim.

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 do layout de execução do elemento; elementos mais altos na árvore estão na parte superior da fila, para evitar layouts redundantes causados por alterações repetidas nos pais. As entradas duplicadas são removidas automaticamente da fila e os elementos são removidos automaticamente da fila se já estiverem validados pelo layout.

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