Rendering von Steuerelementen mit visuellen Stilen
Aktualisiert: November 2007
.NET Framework unterstützt das Rendern von Steuerelementen und anderen Windows-Benutzeroberflächenelementen mithilfe von visuellen Stilen unter Betriebssystemen, die diese unterstützen. Dieses Thema enthält Informationen über die verschiedenen Arten der Unterstützung in .NET Framework zum Rendern von Steuerelementen und anderen UI-Elementen mit dem aktuellen Stil des Betriebssystems.
Rendern von Klassen für allgemeine Steuerelemente
Unter dem Rendern eines 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. Diese Klasse zeichnet Steuerelemente jedoch im klassischen Windows-Stil, was dazu führen kann, dass beim Zeichnen von benutzerdefinierten Steuerelementen in Anwendungen, in denen visuelle Stile aktiviert sind, die konsistente Darstellung der Benutzeroberfläche verloren geht.
.NET Framework 2.0 umfasst Klassen im System.Windows.Forms-Namespace, die die Teile und Zustände von allgemeinen Steuerelementen mit visuellen Stilen rendern. Jede dieser Klassen beinhaltet static-Methoden, um das Steuerelement oder Teile des Steuerelements in einem bestimmten Zustand mit dem aktuellen Stil des Betriebssystems zu zeichnen.
Einige dieser Klassen dienen dazu, das zugehörige Steuerelement zu zeichnen, und zwar unabhängig davon, ob visuelle Stile verfügbar sind. Wenn visuelle Stile aktiviert sind, zeichnen die Klassenmember das zugehörige Steuerelement mit visuellen Stilen. Wenn visuelle Stile deaktiviert sind, zeichnen die Klassenmember das Steuerelement im klassischen Windows-Stil. Dazu gehören folgende Klassen:
Andere Klassen können das zugehörige Steuerelement nur zeichnen, wenn visuelle Stile verfügbar sind. Wenn visuelle Stile deaktiviert sind, lösen ihre Member eine Ausnahme aus. Dazu gehören folgende Klassen:
Weitere Informationen über die Verwendung dieser Klassen zum Zeichnen eines Steuerelements finden Sie unter Gewusst wie: Verwenden einer Steuerelementwiedergabeklasse.
Visuelles Stilelement und Renderingklassen
Der System.Windows.Forms.VisualStyles-Namespace umfasst Klassen, die zum Zeichnen und Abrufen von Informationen über jedes Steuerelement oder UI-Element verwendet werden können, die von visuellen Stilen unterstützt werden. Zu den unterstützten Steuerelementen gehören allgemeine Steuerelemente, die über eine Renderingklasse im System.Windows.Forms-Namespace verfügen (siehe vorheriger Abschnitt) sowie sonstige Steuerelemente, z. B. Registerkartensteuerelemente und Infoleistensteuerelemente. Weitere unterstützte UI-Elemente sind die Teile des Startmenüs, die Taskleiste und der Nicht-Clientbereich von Windows.
Die wichtigsten Klassen des System.Windows.Forms.VisualStyles-Namespace sind VisualStyleElement und VisualStyleRenderer. VisualStyleElement ist eine Foundation Class zur Bestimmung jedes Steuerelements oder Benutzeroberflächenelements, das von visuellen Stilen unterstützt wird. Neben VisualStyleElement umfasst der System.Windows.Forms.VisualStyles-Namespace zahlreiche verschachtelte Klassen von VisualStyleElement mit static-Eigenschaften, die ein VisualStyleElement für jeden Zustand eines Steuerelements, Teil eines Steuerelements oder anderen UI-Elements, das von visuellen Stilen unterstützt wird, zurückgeben.
VisualStyleRenderer stellt die Methoden bereit, die zum Zeichnen und Abrufen von Informationen über jedes VisualStyleElement, das durch den aktuellen visuellen Stil des Betriebssystems definiert ist, verwendet werden. Zu den Informationen, die über ein Element abgerufen werden können, gehören die Standardgröße, der Hintergrundtyp und Farbdefinitionen. VisualStyleRenderer umfasst die Funktionalität der API für visuelle Stile (UxTheme) aus dem Windows Shell-Teil des Windows Platform SDK. Weitere Informationen finden Sie unter "Using Windows XP Visual Styles" im Platform SDK-Teil der MSDN Library unter https://msdn.microsoft.com/library/deu.
Weitere Informationen über die Verwendung von VisualStyleRenderer und VisualStyleElement finden Sie unter Gewusst wie: Rendern eines visuellen Stilelements.
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 hinzufügen, durch das festgelegt wird, 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 von visuellen Stilen
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 überprüfen, um zu bestimmen, ob Sie das Steuerelement mit oder ohne visuelle Stile rendern sollten. In der folgenden Tabelle werden die vier Bedingungen genannt, die erfüllt sein müssen, damit RenderWithVisualStyles den Wert true zurückgibt.
Bedingung |
Hinweise |
---|---|
Das Betriebssystem unterstützt visuelle Stile. |
Um diese Bedingung einzeln zu überprüfen, verwenden Sie die IsSupportedByOS-Eigenschaft der VisualStyleInformation-Klasse. |
Der Benutzer hat visuelle Stile im Betriebssystem aktiviert. |
Um diese Bedingung einzeln 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 Sie die Application.EnableVisualStyles-Methode aufrufen oder ein Anwendungsmanifest verwenden, das festlegt, dass ComCtl32.dll, Version 6 oder höher, zum Zeichnen von Steuerelementen verwendet wird. |
Visuelle Stile werden verwendet, um den Clientbereich von Anwendungsfenstern zu zeichnen. |
Um diese Bedingung zu überprüfen, verwenden Sie die VisualStyleState-Eigenschaft der Application-Klasse, und stellen Sie sicher, dass der Wert VisualStyleState.ClientAreaEnabled oder VisualStyleState.ClientAndNonClientAreasEnabled lautet. |
Um zu bestimmen, wann ein Benutzer visuelle Stile aktiviert oder deaktiviert bzw. von einem visuellen Stil zu einem anderen wechselt, überprüfen Sie den UserPreferenceCategory.VisualStyle-Wert in den Handlern für das SystemEvents.UserPreferenceChanging-Ereignis oder SystemEvents.UserPreferenceChanged-Ereignis.
Wichtiger Hinweis: |
---|
Wenn Sie VisualStyleRenderer verwenden möchten, um ein Steuerelement oder UI-Element zu rendern, wenn der Benutzer visuelle Stile aktiviert oder umschaltet, stellen Sie sicher, dass Sie dabei das UserPreferenceChanged-Ereignis und nicht das UserPreferenceChanging-Ereignis behandeln. Wenn Sie die VisualStyleRenderer-Klasse beim Behandeln von UserPreferenceChanging verwenden, wird eine Ausnahme ausgelöst. |
Siehe auch
Weitere Ressourcen
Zeichnen und Ausgeben von benutzerdefinierten Steuerelementen