head.WriteLine()

Donnerstag, April 13, 2006

Systeminformationen mit WPF ermitteln

WPF bietet eine Reihe von Klassen, mit denen Sie die verschiedensten Systeminformationen abrufen können. Dies kann beispielsweise dann hilfreich sein, wenn Sie ein ein Owner Drawn Control entwickeln, welches seine Darstellung entsprechend der Windows-Systemeinstellungen anpassen soll.

Die folgenden Klassen im System.Windows-Namespace spielen hierbei eine Rolle:

So können Sie beispielsweise über die Eigenschaft SystemParameters.CaptionWidth die Breite der Titelleiste ermitteln. Darüber hinaus finden sich in der Klasse aber auch einige allgemeingültige Informationen, wie die IsMediaCenter-Eigenschaft, die anzeigt ob es sich um einen Media Center PC handelt oder IsRemotelyControlled, um zu Ermitteln, ob die aktive User Session Remote gesteuert wird. Geht es bei Ihrer Verarbeitung so richtig zu Sache, können Sie über IsSlowMachine ermitteln, ob der aktive Rechner eher von der langsamen Sorte ist (was auch immer das bedeutet) und ggf. einen alternative Weg anbieten.

Die Liste ließe sich noch beliebig fortführen, da SystemParameters weitaus detailiertere Informationen über das aktive System als die bisherige SystemInformation-Klasse des System.Windows.Forms-Namespace bietet. Ein gutes Beispiel für den Einsatz der SystemParameters-Informationen findet sich im Samples-Bereich des WinFx-SDK.

SystemFonts stellt Font-Informationen für Windows-Standardelemente, wie Titelleisten oder Menüs bereit. Wenn Sie beispielsweise ermitteln wollen in welchem Font die Texte in einer Message Box angezeigt werden, können Sie dies über MessageFontStyle heraus finden.

SystemColors bietet Zugriff auf System Brushes, wie beispielsweise ActiveBorderBrush, was beim Zeichnen eines Rahmens im aktiven Zustand hilfreich ist. Ein Beispiel für die Verwendung von SystemFonts und SystemColors findet sich ebenfalls im WinFx SDK.