domenica 17 ottobre 2010

System Meter Chart PDA

Durante lo sviluppo di un progetto mi sono imbattuto nella necessità di realizzare un controllo per PDA che rapresentasse l'andamento di un valore nel tempo. Come "fonte di ispirazione" ho utilizzato la visualizzazione della "cronologia utilizzo CPU" del task manager.

Dopo un pò di lavoro sono riuscito a "confezionare" un controllo che ne mima il comportamento. Ho esteso un pò il grafico prodotto permettendo la gestione dello stesso sia tramite line che stick.

Il controllo utilizza un sistema di  "Double Buffering" con una bitmap offline in cui viene effettivamente disegnato il grafico. Questo ovviamente per evitare il flickering che inevitabilmente sarebbe comparso.

Tutto questo perchè su .Net CF i controls non supportano il double buffer nativamente, per esempio in .Net è possibile attivarlo tramite il seguente codice:

   1: public void EnableDoubleBuffering()
   2: {
   3:    // Set the value of the double-buffering style bits to true.
   4:    this.SetStyle(ControlStyles.DoubleBuffer | 
   5:                  ControlStyles.UserPaint | 
   6:                  ControlStyles.AllPaintingInWmPaint,
   7:                  true);
   8:    this.UpdateStyles();
   9: }

Di seguito riporto un print screen del programma demo e il link in cui trovare il medesimo.



 


Sorgenti Progetto di esempio


Buone "misurazioni" a tutti :)