Idioma

UIElement.Measure(Size) Método

Definição

Atualiza o DesiredSize de um UIElement. Normalmente, os objetos que implementam o layout personalizado para seus filhos de layout chamam esse método de suas próprias implementações measureOverride para formar uma atualização de layout recursivo.

public:
 virtual void Measure(Size availableSize) = Measure;
void Measure(Size const& availableSize);
public void Measure(Size availableSize);
function measure(availableSize)
Public Sub Measure (availableSize As Size)

Parâmetros

availableSize
Size

O espaço disponível que um pai pode alocar a um objeto filho. Um objeto filho pode solicitar um espaço maior do que o que está disponível; o tamanho fornecido poderá ser acomodado se a rolagem ou outro comportamento de redimensionamento for possível nesse contêiner específico.

Exemplos

Este exemplo implementa MeasureOverride para personalizar a lógica de passagem "Medida" para uma implementação de painel personalizado. Observe, em particular, estes aspectos do código:

  • Itera sobre crianças.
  • Para cada filho, chama Medida, usando um Tamanho que faz sentido com base em como a lógica do painel trata o número de filhos e seu próprio limite de tamanho conhecido.
  • Retorna seu tamanho (nesse caso, esse painel simples retorna um tamanho fixo em vez de um tamanho calculado ao acumular as medidas).
// First measure all children and return available size of panel
protected override Size MeasureOverride(Size availableSize)
{

    // Measure first 9 children giving them space up to 100x100, remaining children get 0x0 
    int i = 0;
    foreach (FrameworkElement child in Children)
    {
        if (i < 9)
        {
            child.Measure(new Size(100, 100));
        }
        else
        {
            child.Measure(new Size(0, 0));
        }

        i++;
    }


    // return the size available to the whole panel, which is 300x300
    return new Size(300, 300);
}

Comentários

A chamada De medida potencialmente atinge uma implementação MeasureOverride dessa classe específica. Caso contrário, a maioria das classes FrameworkElement tem um comportamento de layout padrão implícito para Medida.

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

A computação do posicionamento inicial do layout em uma interface do usuário XAML consiste em uma chamada de medida e uma chamada Arrange , nessa ordem. Durante a chamada de medida, o sistema de layout determina os requisitos de tamanho de um elemento usando a medida availableSize . Durante a chamada Organizar , o sistema de layout finaliza o tamanho e a posição da caixa delimitadora de um elemento.

Quando um layout é produzido pela primeira vez, ele sempre tem uma chamada de medida que acontece antes de Organizar. No entanto, após a primeira passagem de layout, uma chamada arrange pode acontecer sem uma Medida anterior a ela. Isso pode acontecer quando uma propriedade que afeta apenas Arrange é alterada (como alinhamento) ou quando o pai recebe uma Organização sem uma Medida.

Uma chamada de medida invalidará automaticamente qualquer informação de Organização . As atualizações de layout geralmente ocorrem de forma assíncrona (em um momento determinado pelo sistema de layout). Um elemento pode não refletir imediatamente as alterações nas propriedades que afetam o dimensionamento do elemento (como Largura).

Aplica-se a

Confira também