UIElement.UpdateLayout Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.