Megosztás a következőn keresztül:


Megjelenítési vezérlők vizuális stílusokkal

A .NET-keretrendszer támogatja a renderelési vezérlőket és más Windows felhasználói felületi elemeket, amelyek vizuális stílusokat használnak az őket támogató operációs rendszerekben. Ez a témakör a .NET-keretrendszer több támogatási szintjét ismerteti a vezérlők és egyéb felhasználói felületi elemek megjelenítéséhez az operációs rendszer jelenlegi vizuális stílusával.

Általános vezérlők renderelési osztályai

A vezérlők renderelése egy vezérlő felhasználói felületének rajzolására utal. A System.Windows.Forms névtér biztosítja az ControlPaint osztályt néhány gyakori Windows Forms-vezérlő megjelenítéséhez. Ez az osztály azonban a klasszikus Windows-stílusban rajzolja a vezérlőket, ami megnehezítheti a konzisztens felhasználói felület fenntartását az egyéni vezérlők olyan alkalmazásokban való rajzolásakor, amelyekben engedélyezve van a vizuális stílus.

A .NET Framework 2.0 olyan osztályokat tartalmaz a System.Windows.Forms névtérben, amelyek vizuális stílusokkal jelenítik meg a közös vezérlők részeit és állapotát. Ezek az osztályok olyan módszereket tartalmaznak static , amellyel a vezérlőt vagy a vezérlő részeit egy adott állapotban rajzolhatja meg az operációs rendszer aktuális vizuális stílusával.

Ezen osztályok némelyike úgy van kialakítva, hogy megrajzolja a kapcsolódó vezérlőt, függetlenül attól, hogy elérhetők-e vizuális stílusok. Ha a vizuális stílusok engedélyezve vannak, akkor az osztálytagok vizuális stílusokkal rajzolják meg a kapcsolódó vezérlőt; ha a vizuális stílusok le vannak tiltva, akkor az osztálytagok a klasszikus Windows-stílusban rajzolják meg a vezérlőt. Ezek az osztályok a következők:

Más osztályok csak akkor tudják lerajzolni a kapcsolódó vezérlőt, ha a vizuális stílusok elérhetők, és a tagjaik kivételt dobnak, ha a vizuális stílusok le vannak tiltva. Ezek az osztályok a következők:

Az osztályok vezérlőelemek rajzolására való használatával kapcsolatos további információkért lásd: Útmutató: Vezérlőmegjelenítési osztály használata.

Vizuális stíluselem és renderelési osztályok

A System.Windows.Forms.VisualStyles névtér olyan osztályokat tartalmaz, amelyek a vizuális stílusok által támogatott vezérlő- vagy felhasználói felületi elemek rajzolására és információinak lekérésére használhatók. A támogatott vezérlők közé tartoznak azok a gyakori vezérlők, amelyek renderelési osztályt tartalmaznak a System.Windows.Forms névtérben (lásd az előző szakaszt), valamint egyéb vezérlőket, például a tabulátorvezérlőket és a rebar vezérlőket. Más támogatott felhasználói felületi elemek közé tartoznak a Start menü részei, a tálca és az ablakok nem kliens területei.

A System.Windows.Forms.VisualStyles névtér fő osztályai a VisualStyleElement és a VisualStyleRenderer. VisualStyleElement a vizuális stílusok által támogatott vezérlő- vagy felhasználói felületi elemek azonosítására szolgáló alaposztály. A VisualStyleElement névtér önmagán kívül számos System.Windows.Forms.VisualStyles beágyazott osztályt is tartalmaz, amelyek VisualStyleElement tulajdonságokkal rendelkeznek, és a vezérlőelemek, vezérlőrészek vagy más vizuális stílusok által támogatott egyéb felhasználói felületi elemek minden állapotához visszaadnak egy static értéket.

VisualStyleRenderer az operációs rendszer aktuális vizualizációs stílusa által definiált módszereket tartalmazza, amelyek minden egyes VisualStyleElement elemről lerajzolnak és információt kapnak. Az elemekről lekérhető információk közé tartozik az alapértelmezett méret, a háttértípus és a színdefiníciók. VisualStyleRenderer A vizualizációs stílusok (UxTheme) API funkcióit a Windows Platform SDK Windows Shell-részéből csomagolja be. További információért lásd: Vizuális stílusok engedélyezése.

A VisualStyleRenderer és VisualStyleElement használatával kapcsolatos további információért lásd: Hogyan: Vizuális stíluselem renderelése.

Vizuális stílusok engedélyezése

A .NET-keretrendszer 1.0-s verziójához írt alkalmazások vizuális stílusainak engedélyezéséhez a programozóknak tartalmazniuk kell egy alkalmazásjegyzéket, amely meghatározza, hogy ComCtl32.dll 6-os vagy újabb verzió lesz használva a vezérlők rajzolásához. Az .NET-keretrendszer 1.1-es vagy újabb verziójával készült alkalmazások használhatják az Application.EnableVisualStylesApplication osztály metódusát.

Vizuális stílusok támogatásának ellenőrzése

Az RenderWithVisualStyles osztály tulajdonsága Application azt jelzi, hogy az aktuális alkalmazás vizuális stílusokkal rendelkező rajzvezérlő-e. Egyéni vezérlők festésekor ellenőrizheti a RenderWithVisualStyles értékét annak megállapítására, hogy a vezérlőt vizuális stílusokkal vagy anélkül szeretné megjeleníteni. Az alábbi táblázat felsorolja azt a négy feltételt, amelyeknek fenn kell állniuk ahhoz, hogy a RenderWithVisualStyles visszatérjen true.

Állapot Jegyzetek
Az operációs rendszer támogatja a vizuális stílusokat. Ha külön szeretné ellenőrizni ezt a feltételt, használja az IsSupportedByOS osztály tulajdonságát VisualStyleInformation .
A felhasználó engedélyezte a vizuális stílusokat az operációs rendszerben. Ha külön szeretné ellenőrizni ezt a feltételt, használja az IsEnabledByUser osztály tulajdonságát VisualStyleInformation .
A vizuális stílusok engedélyezve vannak az alkalmazásban. Az alkalmazásokban a vizualizációs stílusok engedélyezhetők a Application.EnableVisualStyles metódus meghívásával vagy egy alkalmazásjegyzék használatával, amely meghatározza, hogy ComCtl32.dll 6-os vagy újabb verzió lesz használva a vezérlők rajzolásához.
Vizuális stílusokkal rajzoljuk meg az alkalmazásablakok ügyfélterületét. Ha külön szeretné ellenőrizni ezt a feltételt, használja az VisualStyleStateApplication osztály tulajdonságát, és ellenőrizze, hogy rendelkezik-e értékkel VisualStyleState.ClientAreaEnabled vagy VisualStyleState.ClientAndNonClientAreasEnabled.

Annak megállapításához, hogy a felhasználó mikor engedélyezi vagy tiltja le a vizuális stílusokat, vagy vált egyik vizuális stílusról a másikra, ellenőrizze az UserPreferenceCategory.VisualStyle értéket a SystemEvents.UserPreferenceChanging vagy SystemEvents.UserPreferenceChanged események kezelőiben.

Fontos

Ha vezérlőt vagy felhasználói felületi elemet szeretne VisualStyleRenderer renderelni, amikor a felhasználó engedélyezi vagy módosítja a vizuális stílusokat, győződjön meg arról, hogy ezt az esemény kezelésekor UserPreferenceChanged teszi meg az UserPreferenceChanging esemény helyett. Kivételt dob a rendszer, ha a VisualStyleRenderer osztályt használják a UserPreferenceChanging kezelésére.

Lásd még