UIElement.Measure(Size) Método

Definição

Atualiza DesiredSize de um UIElement.Updates the DesiredSize of a UIElement. Elementos pai chamam esse método de suas próprias implementações MeasureCore(Size) para formar uma atualização de layout recursiva.Parent elements call this method from their own MeasureCore(Size) implementations to form a recursive layout update. Chamar esse método constitui a primeira passagem (a passagem "Medida") de uma atualização de layout.Calling this method constitutes the first pass (the "Measure" pass) of a layout update.

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.The available space that a parent element can allocate a child element. 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.A child element can request a larger space than what is available; the provided size might be accommodated if scrolling is possible in the content model for the current element.

Comentários

A computação do posicionamento de layout no Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) é composta de uma chamada de Measure e uma chamada de Arrange.Computation of layout positioning in Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) is comprised of a Measure call and an Arrange call. Durante a chamada de Measure, um elemento determina seus requisitos de tamanho usando uma entrada de availableSize.During the Measure call, an element determines its size requirements by using an availableSize input. Durante a chamada de Arrange, o tamanho do elemento é finalizado.During the Arrange call, the element size is finalized.

availableSize pode ser qualquer número de zero a infinito.availableSize can be any number from zero to infinite. Os elementos que participam do layout devem retornar o mínimo Size necessário para um determinado availableSize.Elements participating in layout should return the minimum Size they require for a given availableSize.

Quando um layout é instanciado pela primeira vez, ele sempre recebe uma chamada de Measure antes de Arrange.When a layout is first instantiated, it always receives a Measure call before Arrange. No entanto, após a primeira passagem de layout, ele pode receber uma chamada Arrange sem um Measure; Isso pode acontecer quando uma propriedade que afeta apenas Arrange é alterada (como alinhamento) ou quando o pai recebe um Arrange sem uma Measure.However, after the first layout pass, it may receive an Arrange call without a Measure; this can happen when a property that affects only Arrange is changed (such as alignment), or when the parent receives an Arrange without a Measure. Uma chamada de Measure invalidará automaticamente uma chamada de Arrange.A Measure call will automatically invalidate an Arrange call.

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.Layout updates happen asynchronously, such that the main thread is not waiting for every possible layout change. A consulta de um elemento por meio da verificação de código por trás dos valores de propriedade pode não refletir imediatamente as alterações nas propriedades que interagem com as características de dimensionamento ou layout (a propriedade Width, por exemplo).Querying an element via code-behind checking of property values may not immediately reflect changes to properties that interact with the sizing or layout characteristics (the Width property, for example).

Observação

As atualizações de layout podem ser forçadas usando o método UpdateLayout.Layout updates can be forced by using the UpdateLayout method. No entanto, chamar esse método geralmente é desnecessário e pode causar baixo desempenho.However, calling this method is usually unnecessary and can cause poor performance.

O sistema de layout mantém duas filas separadas de layouts inválidos, uma para Measure e outra para Arrange.The layout system keeps two separate queues of invalid layouts, one for Measure and one for Arrange. A fila de layout é classificada com base na ordem dos elementos na árvore visual do elemento que executa o layout; os elementos mais altos na árvore estão na parte superior da fila, para evitar layouts redundantes causados por alterações repetidas em pais.The layout queue is sorted based upon the order of elements in the visual tree of the element performing layout; elements higher in the tree are at the top of the queue, to avoid redundant layouts caused by repeated changes in parents. As entradas duplicadas são removidas automaticamente da fila e os elementos são automaticamente removidos da fila se já estiverem validados por layout.Duplicate entries are automatically removed from the queue, and elements are automatically removed from the queue if they are already layout-validated.

Ao atualizar o layout, a fila de Measure é esvaziada primeiro, seguida pela fila de Arrange.When updating layout, the Measure queue is emptied first, followed by the Arrange queue. Um elemento na fila de Arrange nunca será organizado se houver um elemento na fila de Measure.An element in the Arrange queue will never be arranged if there is an element in the Measure queue.

Aplica-se a