Dela via


Renderingskontroller med visuella stilar

.NET Framework har stöd för renderingskontroller och andra windows-användargränssnittselement (UI) med hjälp av visuella format i operativsystem som stöder dem. I det här avsnittet beskrivs flera stödnivåer i .NET Framework för renderingskontroller och andra gränssnittselement med det aktuella visuella formatet för operativsystemet.

Renderingsklasser för vanliga kontroller

Rendering av en kontroll syftar på att rita användargränssnittet för en kontroll. Namnområdet System.Windows.Forms innehåller klassen ControlPaint för återgivning av några vanliga Windows Forms-kontroller. Den här klassen ritar dock kontroller i klassiskt Windows-format, vilket kan göra det svårt att upprätthålla en konsekvent användargränssnittsupplevelse när du ritar anpassade kontroller i program med visuella format aktiverade.

.NET Framework 2.0 innehåller klasser i System.Windows.Forms namnrymd som återger delar och tillstånd för vanliga kontroller med visuella format. Var och en av dessa klasser innehåller static metoder för att rita kontrollen eller delar av kontrollen i ett visst tillstånd med operativsystemets aktuella visuella stil.

Vissa av dessa klasser är utformade för att rita den relaterade kontrollen oavsett om visuella format är tillgängliga. Om visuella format är aktiverade ritar klassmedlemmarna den relaterade kontrollen med visuella format. Om visuella format är inaktiverade ritar klassmedlemmarna kontrollen i det klassiska Windows-formatet. Dessa klasser omfattar:

Andra klasser kan bara dra den relaterade kontrollen när visuella format är tillgängliga, och deras medlemmar utlöser ett undantag om visuella format är inaktiverade. Dessa klasser omfattar:

Mer information om hur du använder dessa klasser för att rita en kontroll finns i How to: Use a Control Rendering Class.

Element och renderingsklasser för visuell stil

Namnområdet System.Windows.Forms.VisualStyles innehåller klasser som kan användas för att rita och hämta information om alla kontroll- eller användargränssnittselement som stöds av visuella format. Kontroller som stöds omfattar vanliga kontroller som har en renderingsklass i System.Windows.Forms namnområde (se föregående avsnitt) samt andra kontroller, till exempel flikkontroller och kontroller för omlistering. Andra gränssnittselement som stöds är delarna i menyn Start, aktivitetsfältet och det icke-klientområdet i fönster.

Huvudklasserna i System.Windows.Forms.VisualStyles-namnområdet är VisualStyleElement och VisualStyleRenderer. VisualStyleElement är en grundläggande klass för att identifiera alla kontroll- eller användargränssnittselement som stöds av visuella format. Förutom VisualStyleElement innehåller System.Windows.Forms.VisualStyles namnområdet många kapslade klasser av VisualStyleElement med static egenskaper som returnerar en VisualStyleElement för varje tillstånd för en kontroll, kontrolldel eller annat gränssnittselement som stöds av visuella format.

VisualStyleRenderer innehåller de metoder som ritar och hämtar information om varje VisualStyleElement som definieras av operativsystemets aktuella visuella format. Information som kan hämtas om ett element innehåller dess standardstorlek, bakgrundstyp och färgdefinitioner. VisualStyleRenderer omsluter funktionerna i API:et för visuella format (UxTheme) från Windows Shell-delen av Windows Platform SDK. Mer information finns i Aktivera visuella stilar.

Mer information om hur du använder VisualStyleRenderer och VisualStyleElementfinns i How to: Render a Visual Style Element.

Aktivera visuella stilar

För att aktivera visuella format för ett program som skrivits för .NET Framework version 1.0 måste programmerare innehålla ett programmanifest som anger att ComCtl32.dll version 6 eller senare ska användas för att rita kontroller. Program som skapats med .NET Framework version 1.1 eller senare kan använda metoden Application.EnableVisualStyles i klassen Application.

Söka efter stöd för visuella stilar

Egenskapen RenderWithVisualStyles för klassen Application anger om det aktuella programmet använder visuella stilar för att rita kontroller. Du kan kontrollera värdet för RenderWithVisualStyles när du ritar en anpassad kontroll för att avgöra om du ska rendera kontrollen med eller utan visuella stilar. I följande tabell visas de fyra villkor som måste finnas för att RenderWithVisualStyles ska kunna returnera true.

Tillstånd Anteckningar
Operativsystemet stöder visuella stilar. Om du vill verifiera det här villkoret separat använder du egenskapen IsSupportedByOS för klassen VisualStyleInformation.
Användaren har aktiverat visuella formatmallar i operativsystemet. Om du vill verifiera det här villkoret separat använder du egenskapen IsEnabledByUser för klassen VisualStyleInformation.
Visuella stilar är aktiverade i programmet. Visuella format kan aktiveras i ett program genom att anropa metoden Application.EnableVisualStyles eller genom att använda ett programmanifest som anger att ComCtl32.dll version 6 eller senare ska användas för att rita kontroller.
Visuella format används för att rita klientområdet i programfönster. Om du vill verifiera det här villkoret separat använder du egenskapen VisualStyleState för klassen Application och kontrollerar att den har värdet VisualStyleState.ClientAreaEnabled eller VisualStyleState.ClientAndNonClientAreasEnabled.

Om du vill avgöra när en användare aktiverar eller inaktiverar visuella format, eller växlar från ett visuellt format till ett annat, ska du kontrollera om värdet UserPreferenceCategory.VisualStyle i hanterarna för SystemEvents.UserPreferenceChanging- eller SystemEvents.UserPreferenceChanged-händelserna.

Viktig

Om du vill använda VisualStyleRenderer för att återge ett kontroll- eller användargränssnittselement när användaren aktiverar eller växlar visuella formatmallar kontrollerar du att du gör det när du hanterar UserPreferenceChanged händelsen i stället för händelsen UserPreferenceChanging. Ett undantag utlöses om du använder klassen VisualStyleRenderer när du hanterar UserPreferenceChanging.

Se även