Compartilhar via


UIElement.UpdateLayout Método

Definição

Garante que todas as posições de objetos filho de um UIElement sejam atualizadas corretamente para layout.

public:
 virtual void UpdateLayout() = UpdateLayout;
void UpdateLayout();
public void UpdateLayout();
function updateLayout()
Public Sub UpdateLayout ()

Comentários

UpdateLayout é basicamente equivalente a chamar InvalidateMeasure e InvalidateArrange em sequência.

As atualizações de layout podem ser forçadas pelo código do aplicativo em vez de depender do comportamento interno do sistema de layout usando o método UpdateLayout. No entanto, isso geralmente não é recomendado. Geralmente, isso é desnecessário e pode causar baixo desempenho se usado em excesso. Em muitas situações em que chamar UpdateLayout do código do aplicativo pode ser apropriado devido a alterações nas propriedades, o sistema de layout provavelmente já estará processando atualizações. O sistema de layout também tem otimizações para lidar com cascatas de alterações de layout por meio de relações pai-filho e chamar UpdateLayout pode funcionar com essas otimizações. No entanto, é possível que existam situações de layout em cenários mais complicados em que chamar UpdateLayout é a melhor opção para resolver um problema de tempo ou outro problema com layout. Use-o deliberadamente e com moderação. Nos casos em que você precisa chamar UpdateLayout, provavelmente o chamará logo depois de chamar Children.Add em alguma coleção de elementos filho de um pai de layout comum e, em seguida, chamar UpdateLayout nesse pai para fazer com que o sistema de layout reconheça o novo filho adicionado.

Um cenário para UpdateLayout é quando você vinculou contêineres como RichTextBlock e RichTextBlockOverflow, fez alterações em tempo de execução no conteúdo e deseja garantir que as operações não vinculadas especificamente à exibição da interface do usuário tenham a chance de executar o layout e disparar o rebalanceamento de conteúdo entre os contêineres vinculados. Por exemplo, talvez você queira fazer isso para preparar um layout para impressão. Para obter um exemplo desse cenário, consulte o cenário nº 5 em Exemplo de impressão.

Dica

Se você tiver um cenário em que usa a associação de dados à interface do usuário e não estiver vendo o layout refletir atualizações em suas coleções de fontes de dados, chamar UpdateLayout provavelmente não ajudará. É mais provável que você tenha problemas com suas declarações de associação, o contexto de dados ou com o suporte INotifyPropertyChanged ou INotifyCollectionChanged em sua fonte de dados.

Aplica-se a

Confira também