Come usare lo stile XP nei vostri applicativi smartclient

Magari ero l'unico a non saperlo, ma oggi ho passato un paio di ore ad impazzire per capire come mettere i bottoni XP sull'applicativo del quale vi ho già parlato.

Su Google è uscito di tutto, dagli articoli su CodeProject che dicevano di farsi dei controlli ad hoc per i bottoni arrontondati, a post sui newsgroup e altri che dicevano di mettere un file nomeprogramma.exe.manifest nel quale mettere delle dipendenze ai Common-Controls.

Ma alla fine troppo sbattimento... alla fine ho chiesto aiuto al mio guru preferito, e ho scoperto che basta una banale chiamata ad un metodo... e per magia lo style "System" dei bottoni mostra i bottoni bombati di XP!!

static void Main() 
{
    
if ((Environment.OSVersion.Platform == PlarformID.Win32NT) &&
        (Environment.OSVersion.Version.Major >= 5) &&
        (Environment.OSVersion.Version.Minor > 0) &&
        (OSFeature.Feature.IsPresent(OSFeature.Themes)))
    {
            Application.EnableVisualStyles();
            Application.DoEvents();
    }
    Application.Run(
new Form1()); 
}

Poi bisogna impostare il FlatStyle dei bottoni (bottoni, radio, checkbox) a "System".
Attenzione, il metodo statico EnableVisualStyles funziona solo con la 1.1 del framework: con la 1.0 invece bisogna usare per forza il file .manifest... per la 2.0 invece non.... non ne ho idea

UPDATE: ho aggiornato lo snippet grazie ai contributi dei commenti

powered by IMHO 1.2

posted @ venerdì 9 settembre 2005 02:05

Print

Comments on this entry:

# re: Come usare lo stile XP nei vostri applicativi smartclient

Left by Lorenzo Barbieri at 09/09/2005 02:11
Gravatar
Ricordati di mettere Application.DoEvents(); in mezzo tra i due, altrimenti succedono casini...

# re: Come usare lo stile XP nei vostri applicativi smartclient

Left by Simone Chiaretta at 09/09/2005 02:19
Gravatar
OK, domani le metto...
thx

# re: Come usare lo stile XP nei vostri applicativi smartclient

Left by Marco De Sanctis at 09/09/2005 12:11
Gravatar
Ricordati anche di controllare la versione del sistema operativo. Non l'avevo mai fatto, visto che ho sempre testato i miei applicativi su XP, ma un articolo dell'ultimo MSDN Magazine mi ha aperto gli occhi: se si esegui il metodo EnableVisualStyles su Win 98, pare che il programma vada in crash.
Quindi, nel main, sarebbe meglio scrivere:

if ((Environment.OSVersion.Platform == PlarformID.Win32NT) &&
(Environment.OSVersion.Version.Major >= 5) &&
(Environment.OSVersion.Version.Minor > 0) &&
(OSFeature.Feature.IsPresent(OSFeature.Themes))) {
Application.EnableVisualStyles();
Application.DoEvents();
}
Application.Run(new Form1());

# re: Come usare lo stile XP nei vostri applicativi smartclient

Left by Simone Chiaretta at 09/09/2005 12:26
Gravatar
[Marco]: grazie mille... non penso che farò mai usare il programma su un sistema diverso da 98
Cmq, lo verificherò per rendere il programma + professionale.
thx
Comments have been closed on this topic.
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011