Accedere in modo sicuro alle proprietà ActualWidth e ActualHeight in Silverlight

Marco Leoncini

di Marco Leoncini, in Silverlight 3.0, il 21 gennaio alle 08:00

Archiviato in: ,

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à.

C#
 
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.

IL CONTENUTO
IN PRIMO PIANO
MEDIA
IN EVIDENZA
MISC