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

di Marco Leoncini, in Silverlight 3.0,

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.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi