Vykreslování ovládacích prvků s vizuálními styly

Rozhraní .NET Framework poskytuje podporu vykreslování ovládacích prvků a dalších prvků uživatelského rozhraní systému Windows pomocí vizuálních stylů v operačních systémech, které je podporují. Toto téma popisuje několik úrovní podpory v rozhraní .NET Framework pro vykreslování ovládacích prvků a dalších prvků uživatelského rozhraní s aktuálním vizuálním stylem operačního systému.

Třídy vykreslování pro běžné ovládací prvky

Vykreslení ovládacího prvku odkazuje na vykreslení uživatelského rozhraní ovládacího prvku. Obor System.Windows.Forms názvů poskytuje ControlPaint třídu pro vykreslení některých běžných ovládacích prvků model Windows Forms. Tato třída však nakreslí ovládací prvky v klasickém stylu Windows, což může ztížit zachování konzistentního uživatelského rozhraní při kreslení vlastních ovládacích prvků v aplikacích s povolenými vizuálními styly.

Rozhraní .NET Framework 2.0 obsahuje třídy v System.Windows.Forms oboru názvů, které vykreslují části a stavy běžných ovládacích prvků pomocí vizuálních stylů. Každá z těchto tříd zahrnuje static metody kreslení ovládacího prvku nebo částí ovládacího prvku v určitém stavu s aktuálním vizuálním stylem operačního systému.

Některé z těchto tříd jsou navrženy tak, aby kreslily související ovládací prvek bez ohledu na to, zda jsou dostupné vizuální styly. Pokud jsou styly vizuálů povolené, členové třídy nakreslejí související ovládací prvek pomocí vizuálních stylů; Pokud jsou vizuální styly zakázané, členové třídy nakreslejí ovládací prvek v klasickém stylu Windows. Mezi tyto třídy patří:

Ostatní třídy mohou kreslit související ovládací prvek pouze v případě, že jsou dostupné styly vizuálů, a jejich členové vyvolá výjimku, pokud jsou vizuální styly zakázány. Mezi tyto třídy patří:

Další informace o použití těchto tříd k kreslení ovládacího prvku naleznete v tématu Postupy: Použití třídy vykreslování ovládacího prvku.

Element vizuálního stylu a třídy vykreslování

System.Windows.Forms.VisualStyles Obor názvů zahrnuje třídy, které lze použít k kreslení a získání informací o jakémkoli ovládacím prvku nebo prvku uživatelského rozhraní, které jsou podporovány vizuálními styly. Mezi podporované ovládací prvky patří běžné ovládací prvky, které mají třídu vykreslování v System.Windows.Forms oboru názvů (viz předchozí část), a také další ovládací prvky, jako jsou ovládací prvky tabulátoru a ovládací prvky na panelu. Mezi další podporované prvky uživatelského rozhraní patří části nabídky Start , hlavní panel a oblast bez klienta oken.

Hlavní třídy System.Windows.Forms.VisualStyles oboru názvů jsou VisualStyleElement a VisualStyleRenderer. VisualStyleElement je základní třída pro identifikaci jakéhokoli prvku ovládacího prvku nebo uživatelského rozhraní podporovaného vizuálními styly. VisualStyleElement Kromě sebe System.Windows.Forms.VisualStyles zahrnuje obor názvů mnoho vnořených tříd VisualStyleElement s vlastnostmistatic, které vracejí VisualStyleElement pro každý stav ovládacího prvku, ovládacího prvku nebo jiné prvky uživatelského rozhraní podporované vizuálními styly.

VisualStyleRenderer poskytuje metody, které vykreslují a získávají informace o jednotlivých VisualStyleElement definovaných aktuálním vizuálním stylem operačního systému. Informace, které lze načíst o prvku, zahrnují výchozí velikost, typ pozadí a definice barev. VisualStyleRenderer zabalí funkčnost rozhraní API vizuálních stylů (UxTheme) z části prostředí Windows Shell sady Windows Platform SDK. Další informace naleznete v tématu Povolení vizuálních stylů.

Další informace o použití VisualStyleRenderer a VisualStyleElementnaleznete v tématu Postupy: Vykreslení elementu vizuálního stylu.

Povolení vizuálních stylů

Chcete-li povolit vizuální styly pro aplikaci napsanou pro rozhraní .NET Framework verze 1.0, musí programátoři zahrnout manifest aplikace, který určuje, že ComCtl32.dll verze 6 nebo novější budou použity k kreslení ovládacích prvků. Aplikace vytvořené pomocí rozhraní .NET Framework verze 1.1 nebo novější mohou použít Application.EnableVisualStyles metodu Application třídy.

Kontrola podpory vizuálních stylů

Vlastnost RenderWithVisualStylesApplication třídy označuje, zda aktuální aplikace je kreslit ovládací prvky s vizuálními styly. Při malování vlastního ovládacího prvku můžete zkontrolovat hodnotu, zda chcete ovládací prvek vykreslit pomocí vizuálních RenderWithVisualStyles stylů nebo bez. Následující tabulka uvádí čtyři podmínky, které musí existovat pro RenderWithVisualStyles vrácení true.

Podmínka Notes
Operační systém podporuje vizuální styly. Chcete-li ověřit tuto podmínku VisualStyleInformation samostatně, použijte IsSupportedByOS vlastnost třídy.
Uživatel povolil vizuální styly v operačním systému. Chcete-li ověřit tuto podmínku VisualStyleInformation samostatně, použijte IsEnabledByUser vlastnost třídy.
Styly vizuálů jsou v aplikaci povolené. Vizuální styly lze v aplikaci povolit voláním Application.EnableVisualStyles metody nebo pomocí manifestu aplikace, který určuje, že ComCtl32.dll verze 6 nebo novější se použijí k kreslení ovládacích prvků.
Styly vizuálů se používají k vykreslení klientské oblasti oken aplikací. Chcete-li ověřit tuto podmínku samostatně, použijte VisualStyleState vlastnost třídy a ověřte, zda má hodnotu VisualStyleState.ClientAreaEnabled nebo VisualStyleState.ClientAndNonClientAreasEnabled.Application

Pokud chcete zjistit, kdy uživatel povolí nebo zakáže vizuální styly nebo přepne z jednoho vizuálního stylu na jiný, zkontrolujte UserPreferenceCategory.VisualStyle hodnotu v obslužných rutinách pro události SystemEvents.UserPreferenceChanging nebo SystemEvents.UserPreferenceChanged události.

Důležité

Pokud chcete použít VisualStyleRenderer k vykreslení ovládacího prvku nebo prvku uživatelského rozhraní, když uživatel povolí nebo přepne vizuální styly, ujistěte se, že to uděláte při zpracování UserPreferenceChanged události místo UserPreferenceChanging události. Pokud při zpracování UserPreferenceChangingpoužijete VisualStyleRenderer třídu, vyvolá se výjimka .

Viz také