UIElement.UpdateLayout Méthode

Définition

Garantit que toutes les positions des objets enfants d’un UIElement sont correctement mises à jour pour la disposition.

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

Remarques

UpdateLayout équivaut essentiellement à appeler InvalidateMeasure et InvalidateArrange dans l’ordre.

Les mises à jour de disposition peuvent être forcées par le code d’application plutôt que par le comportement du système de disposition intégré à l’aide de la méthode UpdateLayout. Toutefois, ce n’est généralement pas recommandé. Il est généralement inutile et peut entraîner des performances médiocres en cas de surutilis. Dans de nombreuses situations où l’appel de UpdateLayout à partir du code d’application peut être approprié en raison de modifications apportées aux propriétés, le système de disposition traite probablement déjà les mises à jour. Le système de disposition dispose également d’optimisations pour traiter les cascades de modifications de disposition via des relations parent-enfant, et l’appel à UpdateLayout peut fonctionner contre de telles optimisations. Néanmoins, il est possible que des situations de disposition existent dans des scénarios plus complexes où l’appel à UpdateLayout est la meilleure option pour résoudre un problème de minutage ou un autre problème de disposition. Il suffit de l’utiliser délibérément et avec parcimonie. Dans les cas où vous devez appeler UpdateLayout, vous allez probablement l’appeler juste après avoir appelé Children.Add sur une collection d’éléments enfants d’un parent de disposition commun, puis en appelant UpdateLayout sur ce parent pour que le système de disposition reconnaisse le nouvel enfant ajouté.

L’un des scénarios pour UpdateLayout est lorsque vous avez des conteneurs liés tels que RichTextBlock et RichTextBlockOverflow, que vous avez apporté des modifications au moment de l’exécution du contenu et que vous voulez vous assurer que les opérations qui ne sont pas spécifiquement liées à l’affichage de l’interface utilisateur ont la possibilité d’exécuter la disposition et de déclencher le rééquilibrage du contenu entre les conteneurs liés. Par exemple, vous pouvez effectuer cette opération pour préparer une disposition pour l’impression. Pour obtenir un exemple de ce scénario, consultez le scénario #5 dans l’exemple Print.

Conseil

Si vous avez un scénario où vous utilisez la liaison de données à l’interface utilisateur et que vous ne voyez pas la disposition refléter les mises à jour dans vos collections de sources de données, l’appel de UpdateLayout n’est probablement pas utile. Il est plus probable que vous rencontrez des problèmes avec vos déclarations de liaison, le contexte de données ou la prise en charge de INotifyPropertyChanged ou INotifyCollectionChanged dans votre source de données.

S’applique à

Voir aussi