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, é desnecessário e pode causar um desempenho ruim 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 em relação a 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. Basta usá-lo deliberadamente e com moderação. Nos casos em que você precisa chamar UpdateLayout, você provavelmente vai chamá-lo logo depois de chamar Children.Add algumas coleções 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, você 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 reequilíbrio 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 no exemplo De impressão.

Tip

Se você tiver um cenário em que use 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