UIElement.UpdateLayout Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Garantit que toutes les positions des objets enfants d’un élément 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 au lieu de s’appuyer sur le comportement du système de disposition intégré à l’aide de la méthode UpdateLayout. Toutefois, cela 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 de l’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 gérer les cascades de modifications de disposition par le biais de relations parent-enfant, et l’appel de UpdateLayout peut fonctionner sur ces optimisations. Néanmoins, il est possible que des situations de disposition existent dans des scénarios plus complexes où l’appel de 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 avez besoin d’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 que vous avez des conteneurs liés comme RichTextBlock et RichTextBlockOverflow, que vous avez apporté des modifications au moment de l’exécution au contenu et que vous souhaitez 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 mise en page pour l’impression. Pour obtenir un exemple de ce scénario, consultez le scénario #5 dans Exemple d’impression.
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 ne vous aidera probablement pas. 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.