Accedere ai parametri di sistema da un'applicazione WPF

di Cristian Civera, in Windows Presentation Foundation,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi