Controllare l'effettivo frame-rate di una applicazione Silverlight 4.0

Una delle caratteristiche principe di Silverlight è la facilità con cui è possibile animare l'aspetto o la posizione di ogni elemento dell'interfaccia.
Tale semplicità può facilmente portare ad inserire molte animazioni, la cui concorrenza può influire reciprocamente in modo negativo sulla fluidità delle stesse.
La fluidità delle animazioni, in termini di frame per secondo, è influenzata dal valore di MaxFrameRate della proprità Settings, esposta dall'oggetto Silverlight.

System.Windows.Interop.SilverlightHost host = Application.Current.Host;
System.Windows.Interop.Settings settings = host.Settings;
settings.MaxFrameRate = 30;

Tuttavia, anche settando valori molto elevati, entrano in gioco i fattori appena menzionati, direttamente influenzati dalle prestazioni del personal computer dell'utente.
Per valutare gli effettivi frame per secondo con cui sono riprodotte le animazioni è possibile impostare a true la proprietà EnableFrameRateCounter esposta sempre dall'oggetto Settings che abbiamo citato.

System.Windows.Interop.SilverlightHost host = Application.Current.Host;
System.Windows.Interop.Settings settings = host.Settings;
settings.EnableFrameRateCounter = true;

Con questo snippet, nella barra di stato di Internet Explorer verrà visualizzato un valore ad indicazione del rapporto tra il frame rate effettivo e quello massimo.
Controllando questo rapporto possiamo ponderare il livello di ottimizzazione delle animazioni che dobbiamo attuare per ottenere una visualizzazione corretta su più sistemi possibile.
Per visualizzare queste informazioni, è importante non dimenticare di consentire "Allow status bar updates via script" nei settings del browser.

Commenti

Controllare l'effettivo frame-rate di una applicazione Silverlight 4.0 (#94)
| Condividi su: Twitter, Facebook, LinkedIn, Google+

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