Condividi tramite


UIElement.UpdateLayout Metodo

Definizione

Assicura che tutte le posizioni degli oggetti figlio di un UIElement vengano aggiornate correttamente per il layout.

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

Commenti

UpdateLayout è fondamentalmente equivalente alla chiamata di InvalidateMeasure e InvalidateArrange in sequenza.

Gli aggiornamenti del layout possono essere forzati dal codice dell'app anziché basarsi sul comportamento del sistema di layout predefinito usando il metodo UpdateLayout. Tuttavia, ciò non è generalmente consigliato. In genere non è necessario e può causare prestazioni scarse se sovrautilizzate. In molte situazioni in cui la chiamata a UpdateLayout dal codice dell'app potrebbe essere appropriata a causa delle modifiche apportate alle proprietà, il sistema di layout probabilmente sta già elaborando gli aggiornamenti. Il sistema di layout include anche ottimizzazioni per gestire le modifiche di layout tramite relazioni padre-figlio e la chiamata a UpdateLayout può funzionare su tali ottimizzazioni. Tuttavia, è possibile che le situazioni di layout esistano in scenari più complessi in cui la chiamata a UpdateLayout è l'opzione migliore per risolvere un problema di temporizzazione o un altro problema con il layout. Usalo deliberatamente e con moderazione. Nei casi in cui è necessario chiamare UpdateLayout, probabilmente lo chiamerai subito dopo aver chiamato Children.Add su una raccolta di elementi figlio di un padre di layout comune, quindi chiamando UpdateLayout su tale elemento padre per rendere il sistema di layout riconoscere il nuovo elemento figlio aggiunto.

Uno scenario per UpdateLayout è quando sono presenti contenitori collegati come RichTextBlock e RichTextBlockOverflow, sono state apportate modifiche in fase di esecuzione al contenuto e si vuole assicurarsi che le operazioni non specifiche associate alla visualizzazione dell'interfaccia utente abbiano la possibilità di eseguire il layout e attivare il ribilanciamento del contenuto tra i contenitori collegati. Ad esempio, è possibile eseguire questa operazione per preparare un layout per la stampa. Per un esempio di questo scenario, vedere lo scenario #5 nell'esempio di stampa.

Suggerimento

Se si ha uno scenario in cui si usa il data binding all'interfaccia utente e non viene visualizzato il layout riflette gli aggiornamenti nelle raccolte di origini dati, la chiamata di UpdateLayout probabilmente non sarà utile. È più probabile che si verifichino problemi con le dichiarazioni di associazione, il contesto dati o il supporto INotifyPropertyChanged o INotifyCollectionChanged nell'origine dati.

Si applica a

Vedi anche