Informações
O tópico solicitado está sendo mostrado abaixo. No entanto, este tópico não está incluído nesta biblioteca.

Método UIElement.Measure

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

Namespace:  System.Windows
Assembly:  PresentationCore (em PresentationCore.dll)

public void Measure(
	Size availableSize
)
Você não pode usar métodos em XAML.

Parâmetros

availableSize
Tipo: System.Windows.Size
O espaço disponível que um elemento pai pode alocar um elemento filho.Um elemento filho pode solicitar um espaço maior que o que está disponível; o dimensionar fornecido pode ser alojado se rolagem for possível no modelo de conteúdo para o elemento corrente.

Computação de posicionamento de layout em Windows Presentation Foundation (WPF) é composto de um Measure telefonar e um Arrange telefonar. Durante o Measure telefonar, um elemento determina seus requisitos de dimensionar usando um availableSize entrada. Durante o Arrange telefonar, o dimensionar do elemento é finalizada.

availableSize pode ser qualquer número de zero a infinita. Participando de layout de elementos devem retornar o mínimo Size eles precisam para um determinado availableSize.

Quando um layout é instanciado pela primeira vez, ele sempre recebe um Measure telefonar antes Arrange. No entanto, após a primeira passagem de layout, ele receberá um Arrange telefonar sem um Measure; Isso pode acontecer quando uma propriedade que afeta somente Arrange é alterada (sistema autônomo alinhamento), ou quando o pai recebe um Arrange sem um Measure. A Measure telefonar invalidará automaticamente um Arrange Chame.

Atualizações de layout acontecem assincronamente, de modo que o thread principal não está aguardando a cada alterar de layout possíveis.Consultar um elemento através da verificação dos valores de propriedade code-behind pode não refletir imediatamente alterações em propriedades interagem com as características de dimensionamento ou layout (a Width propriedade, por exemplo).

ObservaçãoObservação:

Layout atualizações podem ser forçadas, usando o UpdateLayout método. No entanto, chamar este método geralmente é desnecessário e pode causar baixo desempenho.

O sistema de layout mantém duas filas separadas de layouts inválidos, um para Measure e outra para Arrange. A fila de layout é classificada com base na ordem dos elementos da árvore visual do elemento realizando layout; mais altas na árvore de elementos na parte superior da fila, para evitar redundantes layouts causados por alterações nas repetidos em pais.Entradas duplicadas são automaticamente removidas da fila e elementos são removidos automaticamente da fila se elas já forem validadas de layout.

Ao atualizar o layout, a Measure fila é esvaziada primeiro, seguido de Arrange fila. Um elemento no Arrange fila nunca será organizada se houver um elemento de Measure fila.

Este exemplo mostra como substituir o comportamento de layout padrão do elemento Panel e criar elementos de layout personalizados que derivam de Panel.

O exemplo define uma simples Panel elemento chamado PlotPanel personalizado, que posiciona elementos filho de acordo com duas coordenadas x e y. Nesse exemplo, x e y são definidas como 50; portanto, todos os elementos filho são posicionados naquele local nos eixos x e y.

Para implementar comportamentos de Panel personalizados, o exemplo usa os métodos MeasureOverride e ArrangeOverride. Cada método retorna os dados Size que são necessários para posicionar e renderizar elementos filho.

publicclass PlotPanel : Panel
{
    // Default public constructorpublic PlotPanel()
        : base()
    {
    }

    // Override the default Measure method of Panelprotectedoverride Size MeasureOverride(Size availableSize)
    {
        Size panelDesiredSize = new Size();

        // In our example, we just have one child. // Report that our panel requires just the size of its only child.foreach (UIElement child in InternalChildren)
        {
            child.Measure(availableSize);
            panelDesiredSize = child.DesiredSize;
        }

        return panelDesiredSize ;
    }
    protectedoverride Size ArrangeOverride(Size finalSize)
    {
        foreach (UIElement child in InternalChildren)
        {
            double x = 50;
            double y = 50;

            child.Arrange(new Rect(new Point(x, y), child.DesiredSize));
        }
        return finalSize; // Returns the final Arranged size
    }
}


For the complete sample, see Criar um exemplo de painel Personalizar simples.

Windows Vista, Windows XP SP2, Windows Server 2003

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0

Contribuições da comunidade

Mostrar:
© 2014 Microsoft