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.
Approfondimenti
I più letti di oggi
- #IE10 disponibile al download da subito: http://aspitalia.com/vf http://aspitalia.com/mix-11 #mix11
- #ie10 supporta il multitouch anche in #Javascript. http://aspitalia.com/build-win8 #BldWin
- stiamo per partire con #aspilive .NET Serverless Day, con @dbochicchio, @cristiancivera e @kasukenhttps://aspit.co/ServerlessDay #azure #aws #serverless #dotnet
- vuoi costruire applicazioni web in real time? non perdere il nostro speciale! https://aspit.co/aln #signalr #websockets #polling #aspnet
- finiamo con @itsonlyGianca e #Windows10 iot core e #raspberrypi2 con #VS2015 su #aspilive: https://aspit.co/VS2015-live
- #Windows10 #iot core è ora disponibile al download per #RaspberryPI2 e #MinnowBoardMAX: https://aspit.co/a6a