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, questo non è generalmente consigliato. In genere non è necessario e può causare prestazioni scarse se sovrauso. In molte situazioni in cui la chiamata a UpdateLayout dal codice dell'app potrebbe essere appropriata a causa delle modifiche alle proprietà, il sistema di layout probabilmente sta già elaborando gli aggiornamenti. Il sistema di layout include anche ottimizzazioni per la gestione delle modifiche del layout tramite relazioni padre-figlio e la chiamata a UpdateLayout può funzionare contro 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 altro problema con il layout. Basta usarlo intenzionalmente e risparmiando. Nei casi in cui è necessario chiamare UpdateLayout è probabilmente necessario chiamarlo subito dopo aver chiamato Children.Add una raccolta di elementi figlio di un padre di layout comune, quindi chiamare UpdateLayout su tale padre per rendere il sistema di layout riconoscere il nuovo figlio aggiunto.

Uno scenario per UpdateLayout è quando si dispone di contenitori collegati come RichTextBlock e RichTextBlockOverflow, sono state apportate modifiche in fase di esecuzione al contenuto e si vuole assicurarsi che le operazioni non associate in modo specifico 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 l'associazione dati all'interfaccia utente e non si visualizzano gli aggiornamenti del layout nelle raccolte di origine dati, la chiamata di UpdateLayout probabilmente non sarà utile. È più probabile che si verifichino problemi con le dichiarazioni di associazione, il contesto dei dati o con il supporto INotifyPropertyChanged o INotifyCollectionChanged nell'origine dati.

Si applica a

Vedi anche