Volevo farvi sapere che in Area Download di VB T&T, è disponibile un mio nuovo progetto in formato sorgente basato su Windows Presentation Foundation. Si tratta di un lettore multimediale completo per audio e video, con le funzionalità classiche di riproduzione e di controllo (volume, velocità, posizione).
L'interfaccia grafica è decisamente fuori dal normale, piuttosto tondeggiante (da qui il nome Rounded Media Player).. ed è stata realizzata prevalentemente con la Preview di dicembre 2007 di Microsoft Expression Blend 2, ho poi fatto qualche aggiunta manuale al codice XAML. Blend produce codice XAML, ciò significa che per ottenere lo stesso risultato sarebbe bastato utilizzare questo linguaggio di markup direttamente in Visual Studio 2008, solo che Blend mette a disposizione strumenti di design avanzati e quindi rende più semplice la realizzazione di interfacce. Il codice è abbondantemente commentato, quindi potrete trovare pane per i vostri denti direttamente nei sorgenti :-)
Questo è un piccolo screen-shot del programma (il mare che si vede dietro è del mio wallpaper):
Un paio di precisazioni che mi preme fare: in primo luogo, non sto proponendo un sostituto di Windows Media Player o simili.. pertanto troverete delle ovvie limitazioni, ma lo scopo è quello di mostrare un esempio più concreto e funzionante realizzato con WPF, che potete poi estendere o modificare a piacimento. In secondo luogo, credo di aver fatto una buona traduzione da VB 2008 a C#, ma se trovate imprecisioni non vi arrabbiate.. :-) in particolare, vorrei evidenziare che nei test della versione C# ho ottenuto, talvolta, un errore di run-time dal codice identificativo HRESULT 0xC00D11B1 legato al MediaElement (non accade con Visual Basic). Nel caso riscontriate il problema, facendo clic qui troverete una pagina che vi può essere utile per capire cosa ha originato il problema e che vi consiglio di leggere nell'eventualità.
Tra le tecniche più importanti utilizzate vi segnalo le seguenti:
- stili e Control Templates;
- trasparenza di finestre;
- animazioni;
- utilizzo di BitmapEffects;
- utilizzo completo del controllo MediaElement, con implementazione degli eventi e delle proprietà di riproduzione da esso esposti;
- integrazione di componenti Windows Forms;
- utilizzo di gradienti.
Potete scaricare RoundedMediaPlayer a questo indirizzo. Spero vi piaccia e vi sia utile soprattutto a livello didattico :-)
Alessandro