FrameworkElement.LayoutUpdated Événement
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.
Se produit lorsque la disposition de l’arborescence visuelle change, en raison de la modification de la valeur des propriétés pertinentes pour la disposition ou d’une autre action qui actualise la disposition.
// Register
event_token LayoutUpdated(EventHandler<IInspectable> const& handler) const;
// Revoke with event_token
void LayoutUpdated(event_token const* cookie) const;
// Revoke with event_revoker
FrameworkElement::LayoutUpdated_revoker LayoutUpdated(auto_revoke_t, EventHandler<IInspectable> const& handler) const;
public event System.EventHandler<object> LayoutUpdated;
function onLayoutUpdated(eventArgs) { /* Your code */ }
frameworkElement.addEventListener("layoutupdated", onLayoutUpdated);
frameworkElement.removeEventListener("layoutupdated", onLayoutUpdated);
- or -
frameworkElement.onlayoutupdated = onLayoutUpdated;
Public Custom Event LayoutUpdated As EventHandler(Of Object)
<frameworkElement LayoutUpdated="eventhandler"/>
Type d'événement
Remarques
LayoutUpdated est le dernier événement de durée de vie d’objet à se produire dans la séquence de chargement XAML avant qu’un contrôle soit prêt pour l’interaction. Toutefois, LayoutUpdated peut également se produire au moment de l’exécution pendant la durée de vie de l’objet, pour diverses raisons : une modification de propriété, un redimensionnement de fenêtre ou une demande de disposition d’exécution (UpdateLayout ou modèle de contrôle modifié). L’événement LayoutUpdated est déclenché après que tous les événements SizeChanged d’une séquence de disposition se produisent.
LayoutUpdated peut se produire lorsque l’objet dans lequel le gestionnaire est attaché ne change pas nécessairement quoi que ce soit dans l’arborescence visuelle sous celle-ci. Par instance, imaginez un conteneur de disposition dans lequel deux éléments enfants partagent de l’espace. Si le premier objet modifie une propriété qui force une nouvelle disposition, les deux objets déclenchent LayoutUpdated, car le deuxième objet peut être repositionné même si sa propre disposition secondaire ne change pas.
Lorsque vous gérez LayoutUpdated, ne vous fiez pas à la valeur de l’expéditeur . Pour LayoutUpdated, l’expéditeur est toujours null, quel que soit l’endroit où le gestionnaire est attaché. Il s’agit d’empêcher les gestionnaires d’affecter une signification à l’expéditeur, par exemple en impliquant que c’est cet élément spécifique qui a déclenché l’événement hors de l’arborescence visuelle. LayoutUpdated implique que quelque chose dans l’arborescence visuelle globale a changé, et chaque objet spécifique n’importe où dans l’arborescence a la possibilité de gérer cette occurrence. Si vous êtes familiarisé avec la conception de l’API de rendu de niveau inférieur, vous pouvez assimiler LayoutUpdated déclenché comme similaire à un indicateur « redessiner nécessaire » défini dans le cadre d’une logique de rendu en mode conservé piloté par les objets.
Étant donné que LayoutUpdated se déclenche dans de nombreuses circonstances et n’est pas toujours spécifique à un objet qui change réellement, déterminez si la gestion de l’événement SizeChanged est plus appropriée pour votre scénario.
Comportement de Windows 8
Windows 8 a rencontré un problème avec le suivi de plusieurs écouteurs pour cet événement. Si vous aviez plusieurs écouteurs/gestionnaires pour l’événement, la tentative de suppression de l’un d’entre eux entraînerait la suppression de tous les écouteurs. Le problème est corrigé à partir de Windows 8.1 ; la suppression des gestionnaires d’événements à l’aide de la -=
syntaxe supprime correctement un seul écouteur à la fois. La plupart du code n’aura pas besoin de modifications ou de vérifications de comportement, car la gestion de plusieurs écouteurs par événement est un scénario rare.
Les applications qui ont été compilées pour Windows 8, mais qui sont exécutées dans Windows 8.1, continuent d’appliquer le comportement Windows 8.