Rendering von Steuerelementen mit visuellen Stilen

Mithilfe visueller Stile in Betriebssystemen, die diese unterstützen, bietet das .NET Framework Unterstützung für das Rendern von Steuerelementen und anderen Elementen der Windows-Benutzeroberfläche (UI). In diesem Thema werden die verschiedenen Unterstützungsebenen im .NET Framework für das Rendern von Steuerelementen und anderen UI-Elementen mit dem aktuellen visuellen Stil des Betriebssystems besprochen.

Rendern von Klassen für allgemeine Steuerelemente

Unter dem Rendern eine Steuerelements versteht man das Zeichnen der Benutzeroberfläche eines Steuerelements. Der System.Windows.Forms -Namespace stellt die ControlPaint -Klasse zum Rendern einiger allgemeiner Windows Forms-Steuerelemente bereit. Allerdings zeichnet diese Klasse die Steuerelemente im klassischen Windows-Stil. Dies kann eine einheitliche Gestaltung der Benutzeroberfläche erschweren, wenn das Zeichnen benutzerdefinierter Steuerelemente in Anwendungen mit visuellen Stilen aktiviert ist.

Das .NET Framework 2.0 umfasst Klassen im System.Windows.Forms-Namespace, die Teile und Zustände von allgemeinen Steuerelementen mit visuellen Stilen rendern. Jede dieser Klassen enthält static -Methoden für das Zeichnen des Steuerelements oder Teile des Steuerelements in einem bestimmten Zustand mit dem aktuellen visuellen Stil des Betriebssystems.

Einige dieser Klassen dienen dem Zeichnen des zugehörigen Steuerelements, unabhängig davon, ob visuelle Stile verfügbar sind. Wenn visuelle Stile aktiviert sind, werden die Klassenelemente das zugehörige Steuerelement mit visuellen Stilen gezeichnet. Wenn visuelle Stile deaktiviert sind, zeichnen die Klassenelemente das Steuerelement im klassischen Windows-Stil. Diese Klassen umfassen:

Andere Klassen können das zugehörige Steuerelement nur zeichnen, wenn visuelle Stile verfügbar sind, und ihre Member löst eine Ausnahme aus, wenn visuelle Stile deaktiviert sind. Diese Klassen umfassen:

Weitere Informationen zum Verwenden dieser Klassen zum Zeichnen eines Steuerelements finden Sie unter How to: Use a Control Rendering Class.

Visuelles Stilelement und Renderingklassen

Der System.Windows.Forms.VisualStyles -Namespace enthält Klassen, die zum Zeichnen und Abrufen von Informationen über jedes Steuerelement oder UI-Element verwendet werden können, das von visuellen Stilen unterstützt wird. Unterstützte Steuerelemente enthalten allgemeine Steuerelemente, die über eine Rendering-Klasse im System.Windows.Forms -Namespace verfügen (s. Abschnitt oben), sowie andere Steuerelemente, z.B. Registersteuerelemente und Grundleistensteuerelemente. Weitere unterstützte UI-Elemente sind z.B. Teile des Startmenüs , der Taskleiste und des Nicht-Clientbereichs von Windows.

Die wichtigsten Klassen des System.Windows.Forms.VisualStyles -Namespaces sind VisualStyleElement und VisualStyleRenderer. VisualStyleElement ist eine Foundation Class zur Ermittlung aller von visuellen Stilen unterstützten Steuerelemente oder Benutzeroberflächenelemente. Zusätzlich zu VisualStyleElement selbst enthält der System.Windows.Forms.VisualStyles -Namespace viele geschachtelte Klassen von VisualStyleElement mit static -Eigenschaften, die VisualStyleElement für jeden Zustand eines Steuerelements, Teil eines Steuerelements oder jedes UI-Element zurückgeben, der bzw. das von visuellen Stilen unterstützt wird.

VisualStyleRenderer stellt Methoden zum Zeichnen und Abrufen von Informationen zu jedem einzelnen VisualStyleElement bereit, das durch den aktuellen visuellen Stil des Betriebssystems definiert wird. Die Informationen, die über ein Element abgerufen werden können, beinhalten die Standardgröße, den Hintergrundtyp und die Farbdefinitionen. VisualStyleRenderer umschließt die Funktionalität der API für visuelle Stile (UxTheme) aus dem Windows Shell-Bereich der Windows Platform SDK. Weitere Informationen finden Sie unter Aktivieren von visuellen Stilen.

Weitere Informationen über die Verwendung von VisualStyleRenderer und VisualStyleElementfinden Sie unter How to: Render a Visual Style Element.

Aktivieren von visuellen Stilen

Programmierer müssen ein Anwendungsmanifest beifügen, das angibt, dass Version 6 von „ComCtl32.dll“ oder höher zum Zeichnen von Steuerelementen verwendet werden wird, damit visuelle Stile für Anwendungen aktiviert werden, die für .NET Framework Version 1.0 geschrieben wurden. Anwendungen, die mit .NET Framework Version 1.1 oder höher erstellt wurden, können die Application.EnableVisualStyles-Methode der Application-Klasse verwenden.

Überprüfen der Unterstützung für visuelle Stile

Die RenderWithVisualStyles -Eigenschaft der Application -Klasse gibt an, ob die aktuelle Anwendung Steuerelemente mit visuellen Stilen zeichnet. Wenn Sie ein benutzerdefiniertes Steuerelement zeichnen, können Sie den Wert von RenderWithVisualStyles anzeigen, um zu festzulegen, ob das Steuerelement mit oder ohne visuelle Stile gerendert werden soll. In der folgenden Tabelle werden die vier Faktoren aufgelistet, die gegeben sein müssen, damit RenderWithVisualStylestruezurückgibt.

Bedingung Hinweise
Das Betriebssystem unterstützt visuelle Stile. Verwenden Sie die IsSupportedByOS -Eigenschaft der VisualStyleInformation -Klasse, um diese Bedingung separat zu überprüfen.
Der Benutzer hat visuelle Stile auf seinem Betriebssystem aktiviert. Verwenden Sie die IsEnabledByUser -Eigenschaft der VisualStyleInformation -Klasse, um diese Bedingung separat zu überprüfen.
Visuelle Stile sind in der Anwendung aktiviert. Visuelle Stile können in einer Anwendung durch Aufrufen der Application.EnableVisualStyles -Methode oder mithilfe des Anwendungsmanifests aktiviert werden. Das Manifest gibt an, dass Version 6 von „ComCtl32.dll“ oder höher zum Zeichnen von Steuerelementen verwendet werden wird.
Visuelle Stile werden dazu verwendet, den Clientbereich von Anwendungsfenstern zu zeichnen. Verwenden Sie die VisualStyleState -Eigenschaft der Application -Klasse und überprüfen Sie, ob sie den Wert VisualStyleState.ClientAreaEnabled oder VisualStyleState.ClientAndNonClientAreasEnabledaufweist, um diese Bedingung separat zu überprüfen.

Überprüfen Sie den UserPreferenceCategory.VisualStyle -Wert in den Handlern auf SystemEvents.UserPreferenceChanging - oder SystemEvents.UserPreferenceChanged -Ereignisse, um zu ermitteln, ob Benutzer visuelle Stile aktiviert oder deaktiviert haben oder ob sie von einem visuellen Stil zu einem anderen gewechselt haben.

Wichtig

Wenn Sie VisualStyleRenderer verwenden möchten, um ein Steuerelement oder ein UI-Element zu rendern, müssen Sie, wenn der Benutzer visuelle Stile aktiviert oder zwischen ihnen wechselt, sicherstellen, dass Sie dies während der Verarbeitung des UserPreferenceChanged -Ereignisses und nicht während der Verarbeitung des UserPreferenceChanging -Ereignisses tun. Eine Ausnahme wird ausgelöst, wenn Sie mithilfe der VisualStyleRenderer -Klasse bei der Verarbeitung von UserPreferenceChangingverwenden.

Weitere Informationen