Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

RollerLabel: una label con testo variabile

Scusate, ma non sapevo che titolo dare al post. :-)

Per Happy Sign, ma non solo, ho creato un piccolo controllo che eredita direttamente dalla Label classica, ma che aggiunge qualche funzionalità in più. In breve, la RollerLabel contiene:

  1. una lista di stringhe da visualizzare una alla volta
  2. un colore per ogni stringa
  3. un timer interno con un Interval che decide quando cambiare la stringa visualizzata

In pratica, noi possiamo definire un set di stringhe da mostrare, una alla volta, sulla Label. Ogni n millisecondi il testo viene cambiato, ciclando le stringhe e ricominciando daccapo quando si arriva alla fine. Il controllo dispone di una proprietà EnabledRolling per avviare/fermare il timer. Dispone di una proprietà IntervalRolling per definire l'intervallo di tempo dopo il quale modificare la stringa. Ogni stringa può avere potenzialmente un colore diverso. Il controllo RollerLabel può essere configurato a design-time.

L'effetto è molto carino, devo dire. Se messo su una normale Windows Forms, la RollerLabel looppa (bello con 2 p!) tutte le stringhe che abbiamo definito. La RollerLabel solleva un'evento RollingLabelClick, che ovviamente può essere intercettato dalla UI e manipolato come volete voi. Inizialmente, avevo inserito all'interno del controllo la logica per far navigare l'utente da qualche parte: ad ogni stringa avevo associato anche un link. Quando l'utente cliccava, veniva aperto il browser all'URL indicato. Non mi era piaciuto molto, perchè ero troppo legato al fatto di voler navigare, cosa che non è sempre vera. Quindi, ho tolto questa feature e l'ho implementata come ho descritto prima: quando l'utente clicca sulla RollerLabel, viene notificato l'evento RollingLabelClick, che ha un parametro di tipo RollingLabelEventArgs (che eredita da EventArgs) e che permette di discriminare la Label correntemente visualizzata. In questo modo, possiamo fare qualsiasi cosa: aprire il browser, aprire una Windows Form nuova, mostrare una MessageBox, e così via.

Stasera non ho voglia di uscire (uno dei rari venerdì in casa), lavoro ai miei progetti freeware/opensource e se vi interessa fatemelo sapere.

Print | posted on venerdì 3 novembre 2006 19:31 | Filed Under [ Sviluppo .NET ]

Feedback

Gravatar

# re: RollerLabel: una label con testo variabile

..una feature carina potrebbe essere la possibilità di abilitare lo stopRolling quando il mouse sosta sopra la label. Una proprietà booleana a design time tipo StopRollingOnMouse.
Ottima l'idea di lasciare la responsabilità del comportamento sul click al contenitore.
04/11/2006 00:47 | Gabriele Gaggi
Gravatar

# [HappySign] Sviluppi

24/11/2006 17:42 | Technology Experience
Gravatar

# Appunti sulla classe ContentControl di WPF

05/01/2007 16:53 | Technology Experience
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET