Delen via


Besturingselementen weergeven met visuele stijlen

Het .NET Framework biedt ondersteuning voor renderingbesturingselementen en andere Elementen van de Gebruikersinterface (UI) van Windows met behulp van visuele stijlen in besturingssystemen die deze ondersteunen. In dit onderwerp worden de verschillende ondersteuningsniveaus in .NET Framework besproken voor renderingbesturingselementen en andere UI-elementen met de huidige visuele stijl van het besturingssysteem.

Renderingklassen voor algemene besturingselementen

Het weergeven van een besturingselement verwijst naar het tekenen van de gebruikersinterface van een besturingselement. De System.Windows.Forms-naamruimte biedt de ControlPaint-klasse voor het weergeven van enkele algemene Besturingselementen voor Windows Forms. Deze klasse tekent echter besturingselementen in de klassieke Windows-stijl, waardoor het lastig kan zijn om een consistente gebruikersinterface-ervaring te behouden bij het tekenen van aangepaste besturingselementen in toepassingen waarvoor visuele stijlen zijn ingeschakeld.

.NET Framework 2.0 bevat klassen in de System.Windows.Forms naamruimte waarmee de onderdelen en statussen van algemene besturingselementen met visuele stijlen worden weergegeven. Elk van deze klassen bevat static methoden voor het tekenen van het besturingselement of delen daarvan in een specifieke staat volgens de huidige visuele stijl van het besturingssysteem.

Sommige van deze klassen zijn ontworpen om het gerelateerde besturingselement te tekenen, ongeacht of visuele stijlen beschikbaar zijn. Als visuele stijlen zijn ingeschakeld, tekent de klasleden het gerelateerde besturingselement met visuele stijlen; als visuele stijlen zijn uitgeschakeld, tekent de klasleden het besturingselement in de klassieke Windows-stijl. Deze klassen zijn onder andere:

Andere klassen kunnen alleen het gerelateerde besturingselement tekenen wanneer visuele stijlen beschikbaar zijn, en hun leden werpen een uitzondering als visuele stijlen zijn uitgeschakeld. Deze klassen zijn onder andere:

Zie How to: Use a Control Rendering Classvoor meer informatie over het gebruik van deze klassen om een besturingselement te tekenen.

Elementen voor visuele stijlen, renderingklassen

De System.Windows.Forms.VisualStyles naamruimte bevat klassen die kunnen worden gebruikt om informatie te tekenen en op te halen over elk besturingselement of UI-element dat wordt ondersteund door visuele stijlen. Ondersteunde controles omvatten algemene controles die een rendering klasse hebben in de System.Windows.Forms namespace (zie de vorige sectie) en andere controles, zoals tabcontroles en rebar-controles. Andere ondersteunde UI-elementen zijn de onderdelen van het Menu Start, de taakbalk en het niet-clientgedeelte van vensters.

De hoofdklassen van de System.Windows.Forms.VisualStyles-naamruimte zijn VisualStyleElement en VisualStyleRenderer. VisualStyleElement is een basisklasse voor het identificeren van besturingselementen of gebruikersinterface-elementen die worden ondersteund door visuele stijlen. Naast VisualStyleElement zelf bevat de System.Windows.Forms.VisualStyles naamruimte veel geneste klassen van VisualStyleElement met static eigenschappen die een VisualStyleElement retourneren voor elke status van een besturingselement, besturingselementonderdeel of ander UI-element dat wordt ondersteund door visuele stijlen.

VisualStyleRenderer biedt de methoden die tekenen en informatie ophalen over elke VisualStyleElement die is gedefinieerd door de huidige visuele stijl van het besturingssysteem. Informatie die kan worden opgehaald over een element, bevat de standaardgrootte, het achtergrondtype en de kleurdefinities. VisualStyleRenderer verpakt de functionaliteit van de visuele stijlen (UxTheme) API vanuit het Windows Shell-gedeelte van de Windows Platform SDK. Zie Visuele stijlen inschakelenvoor meer informatie.

Zie How to: Render a Visual Style Elementvoor meer informatie over het gebruik van VisualStyleRenderer en VisualStyleElement.

Visuele stijlen inschakelen

Als u visuele stijlen wilt inschakelen voor een toepassing die is geschreven voor .NET Framework versie 1.0, moeten programmeurs een toepassingsmanifest bevatten dat aangeeft dat ComCtl32.dll versie 6 of hoger wordt gebruikt om besturingselementen te tekenen. Toepassingen die zijn gebouwd met .NET Framework versie 1.1 of hoger, kunnen de Application.EnableVisualStyles methode van de Application-klasse gebruiken.

Controleren op ondersteuning voor visuele stijlen

De eigenschap RenderWithVisualStyles van de klasse Application geeft aan of de huidige toepassing besturingselementen tekent met visuele stijlen. Wanneer u een aangepast besturingselement schildert, kunt u de waarde van RenderWithVisualStyles controleren om te bepalen of u uw besturingselement moet weergeven met of zonder visuele stijlen. De volgende tabel bevat de vier voorwaarden die moeten bestaan voor RenderWithVisualStyles om truete retourneren.

Conditie Notities
Het besturingssysteem ondersteunt visuele stijlen. Als u deze voorwaarde afzonderlijk wilt controleren, gebruikt u de eigenschap IsSupportedByOS van de klasse VisualStyleInformation.
De gebruiker heeft visuele stijlen in het besturingssysteem ingeschakeld. Als u deze voorwaarde afzonderlijk wilt controleren, gebruikt u de eigenschap IsEnabledByUser van de klasse VisualStyleInformation.
Visuele stijlen zijn ingeschakeld in de toepassing. Visuele stijlen kunnen worden ingeschakeld in een toepassing door de Application.EnableVisualStyles methode aan te roepen of door een toepassingsmanifest te gebruiken dat aangeeft dat ComCtl32.dll versie 6 of hoger wordt gebruikt om besturingselementen te tekenen.
Visuele stijlen worden gebruikt om het clientgebied van toepassingsvensters te tekenen. Als u deze voorwaarde afzonderlijk wilt controleren, gebruikt u de eigenschap VisualStyleState van de klasse Application en controleert u of deze de waarde VisualStyleState.ClientAreaEnabled of VisualStyleState.ClientAndNonClientAreasEnabledheeft.

Als u wilt bepalen wanneer een gebruiker visuele stijlen inschakelt of uitschakelt of van de ene visuele stijl naar de andere overschakelt, controleert u op de UserPreferenceCategory.VisualStyle waarde in de handlers voor de SystemEvents.UserPreferenceChanging- of SystemEvents.UserPreferenceChanged-gebeurtenissen.

Belangrijk

Als u VisualStyleRenderer wilt gebruiken om een besturingselement of UI-element weer te geven wanneer de gebruiker visuele stijlen inschakelt of wijzigt, moet u dit doen bij het afhandelen van de UserPreferenceChanged gebeurtenis in plaats van de UserPreferenceChanging gebeurtenis. Er wordt een uitzondering gegenereerd als u de klasse VisualStyleRenderer gebruikt bij het verwerken van UserPreferenceChanging.

Zie ook