In Windows XP esisteva nelle Proprietà della barra delle applicazioni e del menù Start un’opzione chiamata Sempre in primo piano che poteva essere deselezionata e permetteva alle applicazioni massimizzate di poter essere davanti anche alla barra delle applicazioni.
| |
Windows Xp | Windows 7 |
In Windows 7 questa opzione è purtroppo scomparsa ed ora le finestre appaiono tutte inevitabilmente sotto alla trasparenza della barra delle applicazioni:
| |
Windows Xp con l’opzione Sempre in primo piano disabilitata | Windows 7 |
A volte però si può avere la necessità di ricreare il comportamento disponibile in Windows Xp nella propria applicazione.
Visto che l’opzione non esiste più si può ricorrere ad un piccolo “trucco” chiamando la seguente funzione all’avvio del proprio programma:
Il codice sostanzialmente consiste nell’impostare tramite alcune chiamate di Windows uno stile non in primo piano per la Shell_TrayWnd ovvero la TaskBar o barra delle applicazioni.
La soluzione però non è valida quando la finestra viene massimizzata dall’utente, a differenza di Windows XP infatti le finestre rimangono sopra alla barra delle applicazioni.
|
Finestre massimizzate in Windows 7, nonostante il codice precedente le finestre massimizzate non copriranno la barra delle applicazioni |
Una soluzione migliore e più semplice per estendere a tutto schermo le finestre massimizzate è disabilitare il MaximizeBox.
Impostando a false il MaximizeBox (in applicazioni Windows Forms) e massimizzando da codice con l’istruzione WindowState = FormWindowState.Maximized le finestre appariranno infatti a pieno schermo massimizzate.
|
Finestra massimizzata via codice in Windows 7 e con la proprietà MaximizeBox = False, la barra delle applicazioni risulta coperta. |
Purtroppo con applicazioni WPF non si dispone di una proprietà MaximizeBox ma si può ovviare impostando WindowStyle a None “perdendo” però la barra del titolo dell’applicazione.