Nello sviluppo di applicazioni WPF può capitare di dover conoscere il sistema sulla quale l'applicativo Windows viene eseguito al fine di mostrare informazioni aggiuntive o per realizzare controlli e style che si adeguino al tema installato.
Il namespace System.Windows contiene per questo scopo una serie di proprietà statiche raggruppate sotto tre classi:
- SystemColors: contiene proprietà riguardanti i colori e il tema corrente, restituendo sia oggetti Color che Brush;
- SystemFonts: contiene proprietà riguardanti i font utilizzati dal tema corrente per ogni elemento grafico (barra, messaggi, ecc) presente in Windows;
- SystemParameters: contiene proprietà riguardanti il cursore, le aree del desktop e degli schermi disponibili, i tipi di device disponibili e le modalità di rendering supportate dalla macchina.
Per esempio per conoscere l'area desktop a disposizione basta interrogare la proprietà SystemParameters.WorkArea:
Rect r = SystemParameters.WorkArea; Console.WriteLine(?Width: {0}, Height: {0}", r.Width, r.Height)
E' possible utilizzare queste proprietà anche da markup mediante la markup extension Static:
<Trigger Property="{x:Static SystemParameters.IsSlowMachine}" Value="true"> </Trigger>
Queste proprietà sono inoltre disponibili come ResourceKey, dando così la possibilità di usarle in modo dinamico e di variare automaticamente in funzione del cambio di informazioni del sistema. Ecco un esempio per monitorare il brush di riempimento dei bordi:
<Rectangle Fill="{DynamicResource {x:Static SystemColors.ActiveBorderBrushKey}}" />
Per una lista completa delle proprietà si veda la documentazione:
- http://msdn.microsoft.com/en-us/library/system.windows.systemparameters.aspx
- http://msdn.microsoft.com/en-us/library/system.windows.systemcolors.aspx
- http://msdn.microsoft.com/en-us/library/system.windows.systemfonts.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.