FrameworkElement.LayoutUpdated Evento

Definizione

Si verifica quando il layout dell'albero visivo cambia, a causa della modifica del valore delle proprietà pertinenti del layout o di un'altra azione che aggiorna il layout.

// 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"/>
 

Tipo evento

Commenti

LayoutUpdated è l'ultimo evento di durata dell'oggetto da eseguire nella sequenza di caricamento XAML prima che un controllo sia pronto per l'interazione. Tuttavia, LayoutUpdated può verificarsi anche in fase di esecuzione durante la durata dell'oggetto, per diversi motivi: una modifica della proprietà, un ridimensionamento di una finestra o una richiesta di layout di runtime (UpdateLayout o un modello di controllo modificato). L'evento LayoutUpdated viene attivato dopo che si verificano tutti gli eventi SizeChanged in una sequenza di layout.

LayoutUpdated può verificarsi quando l'oggetto in cui è collegato il gestore non cambia necessariamente nulla nell'albero visivo sotto di esso. Si supponga, ad esempio, che un contenitore di layout in cui siano presenti due elementi figlio che condividono lo spazio. Se il primo oggetto modifica una proprietà che forza un nuovo layout, entrambi gli oggetti generano LayoutUpdated perché il secondo oggetto potrebbe essere riposizionato anche se il layout della propria filiale non cambia.

Quando si gestisce LayoutUpdated, non si basa sul valore del mittente . Per LayoutUpdated, il mittente è sempre Null, indipendentemente dalla posizione in cui è collegato il gestore. Si tratta di impedire ai gestori di assegnare qualsiasi significato al mittente, ad esempio implicando che fosse l'elemento specifico che ha generato l'evento dall'albero visivo. LayoutUpdated implica che un elemento nell'albero visivo complessivo è cambiato e ogni oggetto specifico ovunque nell'albero abbia la possibilità di gestire questa occorrenza. Se si ha familiarità con la progettazione dell'API di rendering di livello inferiore, è possibile associare layoutUpdated in modo simile a un flag "ridisegno necessario" impostato come parte di una logica di rendering basata su oggetti e con modalità mantenuta.

Poiché LayoutUpdated viene generato in molte circostanze e non è sempre specifico di un oggetto che effettivamente cambia, valutare se gestire l'evento SizeChanged è invece più appropriato per lo scenario.

Comportamento di Windows 8

Windows 8 ha avuto un problema con tenere traccia di più listener per questo evento. Se si dispone di più listener/gestori per l'evento, il tentativo di rimuovere uno di essi comporta la rimozione di tutti. Il problema viene corretto a partire da Windows 8.1; la rimozione dei gestori eventi usando la -= sintassi rimuove correttamente un listener alla volta. La maggior parte del codice non richiede modifiche o controlli di comportamento perché la gestione di più listener per evento è uno scenario insolito.

Le app create per Windows 8 che vengono eseguite in Windows 8.1 continuano a usare il comportamento di Windows 8.

Si applica a

Vedi anche