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
- Windows 8 Developer Event e Lab - Milano
- .NET Conference Italia 2020 - Online
- Microsoft Security Bulletin di ottobre 2008
- ASP.NET 4.0 AJAX arriva alla Preview 5, in attesa della beta2 di ASP.NET 4.0
- SQL Server CE 4.0 supporterà ASP.NET
- FlashRemoting: anche Macromedia atterra su .NET
- Build 2016: segui con noi in live streaming!
- MVP Summit 2003: le foto
- VS 2005 beta 1 tra luglio ed agosto
- SQL Server 2005 in beta 2


