UIElement.Measure(Size) 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.
Atualiza o DesiredSize de um UIElement. Os elementos pais chamam este método das suas próprias MeasureCore(Size) implementações para formar uma atualização recursiva do layout. Chamar este método constitui a primeira passagem (a passagem "Measure") 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 pedir um espaço maior do que o disponível; O tamanho fornecido pode ser acomodado se o scrolling for possível no modelo de conteúdo para o elemento atual.
Observações
O cálculo do posicionamento do layout em Windows Presentation Foundation (WPF) é composto por uma chamada Measure e uma chamada Arrange. Durante a Measure chamada, um elemento determina os 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 que participam no layout devem devolver o mínimo Size que exigem para um dado availableSize.
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 acontecem de forma assíncrona, de modo que o thread principal não está à espera de todas as possíveis alterações de layout. Consultar um elemento através da verificação code-behind dos valores das propriedades pode não refletir imediatamente alterações nas propriedades que interagem com as características de dimensionamento ou layout (a Width propriedade, por exemplo).
Note
As atualizações de layout podem ser forçadas usando o UpdateLayout método. No entanto, chamar este método é geralmente desnecessário e pode causar desempenho reduzido.
O sistema de layout mantém duas filas separadas de layouts inválidos, uma para Measure e outra para Arrange. A fila de layout é ordenada com base na ordem dos elementos na árvore visual do elemento que está a executar o layout; 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á 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.