In Silverlight il processo che misura e dispone gli elementi viene eseguito in asincrono, questo comporta che proprietà come FrameworkElement.ActualWidth o FrameworkElement.ActualHeight siano in alcuni momenti non ancora valorizzate.
Per evitare di ottenere misurazioni incongruenti è necessario eseguire in asincrono tutte le operazioni che coinvolgono le precedenti proprietà.
private void Measure() { Dispatcher.BeginInvoke(delegate { var actualWidth = myTextBlock.ActualWidth; var actualHeight = myTextBlock.ActualHeight; }); }
Così facendo l'accesso alle proprietà verrà eseguito solo quando l'operazione di misurazione sono ormai terminate, e le due proprietà saranno valorizzate correttamente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- Introduzione alle Container Queries in CSS
- Rimuovere le righe vuote da un file di testo con FSO
- Ottimizzare le pull con Artifact Cache di Azure Container Registry