Rendering von Steuerelementen mit visuellen Stilen
.NET Framework bietet Unterstützung für das Rendern von Steuerelementen und anderen UI-Elementen der Windows-Benutzeroberfläche mit visuellen Stilen in Betriebssystemen, die sie unterstützen. In diesem Thema werden die verschiedenen Unterstützungsebenen im .NET Framework zum Rendern von Steuerelementen und anderen UI-Elementen mit dem aktuellen visuellen Stil des Betriebssystems erläutert.
Rendering von Klassen für allgemeine Steuerelemente
Das Rendern eines Steuerelements bezieht sich auf das Zeichnen der Benutzeroberfläche eines Steuerelements. Der System.Windows.Forms-Namespace stellt die ControlPaint Klasse zum Rendern einiger gängiger 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.
.NET Framework 2.0 enthält Klassen im System.Windows.Forms-Namespace, die 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 sind darauf ausgelegt, das zugehörige Steuerelement zu zeichnen, unabhängig davon, ob visuelle Stile verfügbar sind. Wenn visuelle Formatvorlagen aktiviert sind, zeichnen die Klassenmitglieder das zugehörige Steuerelement mit visuellen Stilen. wenn visuelle Formatvorlagen deaktiviert sind, zeichnen die Klassenmitglieder das Steuerelement im klassischen Windows-Stil. Zu diesen Klassen gehören:
Andere Klassen können das zugehörige Steuerelement nur zeichnen, wenn visuelle Stile verfügbar sind, und die Member lösen eine Ausnahme aus, wenn visuelle Stile deaktiviert sind. Zu diesen Klassen gehören:
Weitere Informationen zur Verwendung dieser Klassen zum Zeichnen eines Steuerelements finden Sie unter Wie man eine Steuerelement-Darstellungsklasse verwendet.
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 Benutzeroberflächenelemente sind beispielsweise Teile des Startmenüs, der Taskleiste und des Nicht-Clientbereichs von Windows.
Die Hauptklassen des System.Windows.Forms.VisualStyles-Namespaces sind VisualStyleElement und VisualStyleRenderer. VisualStyleElement ist eine grundlegende Klasse zum Identifizieren von Steuerelement oder Benutzeroberflächenelementen, die durch visuelle Stile unterstützt werden. Zusätzlich zu VisualStyleElement selbst enthält der System.Windows.Forms.VisualStyles-Namespace viele geschachtelte Klassen von VisualStyleElement mit static
-Eigenschaften, die ein VisualStyleElement für jeden Zustand von Steuerelementen, Teile von Steuerelementen oder Benutzeroberflächenelementen zurückgeben, die von visuellen Stilen unterstützt werden.
VisualStyleRenderer stellt Methoden zum Zeichnen und Abrufen von Informationen zu jedem einzelnen VisualStyleElement bereit, das durch den aktuellen visuellen Stil des Betriebssystems definiert wird. Informationen, die zu einem Element abgerufen werden können, umfassen 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 des Windows-Plattform-SDK. Weitere Informationen finden Sie unter Aktivieren von visuellen Stilen.
Weitere Informationen zur Verwendung von VisualStyleRenderer und VisualStyleElement finden Sie unter Rendern von visuellen Stilelementen.
Aktivieren von visuellen Stilen
Um visuelle Stile für eine Anwendung zu aktivieren, die für .NET Framework Version 1.0 geschrieben wurde, müssen Programmierer ein Anwendungsmanifest beifügen, das angibt, dass ComCtl32.dll Version 6 oder höher zum Zeichnen von Steuerelementen verwendet wird. 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 festzulegen, ob das Steuerelement mit oder ohne visuelle Stile gerendert werden soll. In der folgenden Tabelle sind die vier Bedingungen aufgeführt, die für RenderWithVisualStyles vorhanden sein müssen, um true
zurückzugeben.
Zustand | Hinweise |
---|---|
Das Betriebssystem unterstützt visuelle Stile. | Um diese Bedingung separat zu überprüfen, verwenden Sie die IsSupportedByOS-Eigenschaft der VisualStyleInformation Klasse. |
Der Benutzer hat visuelle Stile im Betriebssystem aktiviert. | Um diese Bedingung separat zu überprüfen, verwenden Sie die IsEnabledByUser-Eigenschaft der VisualStyleInformation Klasse. |
Visuelle Stile sind in der Anwendung aktiviert. | Visuelle Stile können in einer Anwendung aktiviert werden, indem die Application.EnableVisualStyles-Methode aufgerufen wird oder indem ein Anwendungsmanifest verwendet wird, das angibt, dass ComCtl32.dll Version 6 oder höher zum Zeichnen von Steuerelementen verwendet wird. |
Visuelle Stile werden dazu verwendet, den Clientbereich von Anwendungsfenstern zu zeichnen. | Um diese Bedingung separat zu überprüfen, verwenden Sie die VisualStyleState-Eigenschaft der Application Klasse, und stellen Sie sicher, dass sie den Wert VisualStyleState.ClientAreaEnabled oder VisualStyleState.ClientAndNonClientAreasEnabledhat. |
Um festzustellen, wann ein Benutzer visuelle Stile aktiviert oder deaktiviert oder von einem visuellen Stil zu einem anderen wechselt, überprüfen Sie den UserPreferenceCategory.VisualStyle-Wert in den Handlern für die Ereignisse SystemEvents.UserPreferenceChanging oder SystemEvents.UserPreferenceChanged.
Wichtig
Wenn Sie VisualStyleRenderer verwenden möchten, um ein Steuerelement oder UI-Element zu rendern, wenn der Benutzer visuelle Stile aktiviert oder wechselt, stellen Sie sicher, dass Sie dies beim Behandeln des UserPreferenceChanged-Ereignisses anstelle des UserPreferenceChanging-Ereignisses tun. Eine Ausnahme wird ausgelöst, wenn Sie bei der Behandlung von UserPreferenceChanging die VisualStyleRenderer-Klasse verwenden.
Siehe auch
.NET Desktop feedback