Bagikan melalui


Kontrol Penyajian dengan Gaya Visual

.NET Framework menyediakan dukungan untuk kontrol penyajian dan elemen antarmuka pengguna (UI) Windows lainnya menggunakan gaya visual dalam sistem operasi yang mendukungnya. Topik ini membahas beberapa tingkat dukungan dalam .NET Framework untuk kontrol penyajian dan elemen UI lainnya dengan gaya visual sistem operasi saat ini.

Kelas Penyajian untuk Kontrol Umum

Merender kontrol mengacu pada menggambar antarmuka pengguna kontrol. Namespace System.Windows.Forms menyediakan ControlPaint kelas untuk menyajikan beberapa kontrol Formulir Windows umum. Namun, kelas ini menarik kontrol dalam gaya Windows klasik, yang dapat menyulitkan untuk mempertahankan pengalaman UI yang konsisten saat menggambar kontrol kustom dalam aplikasi dengan gaya visual diaktifkan.

.NET Framework 2.0 menyertakan kelas di System.Windows.Forms namespace yang merender bagian dan status kontrol umum dengan gaya visual. Masing-masing kelas ini mencakup static metode untuk menggambar kontrol atau bagian kontrol dalam keadaan tertentu dengan gaya visual sistem operasi saat ini.

Beberapa kelas ini dirancang untuk menggambar kontrol terkait terlepas dari apakah gaya visual tersedia. Jika gaya visual diaktifkan, maka anggota kelas akan menggambar kontrol terkait dengan gaya visual; jika gaya visual dinonaktifkan, maka anggota kelas akan menggambar kontrol dalam gaya Windows klasik. Kelas-kelas ini meliputi:

Kelas lain hanya dapat menggambar kontrol terkait saat gaya visual tersedia, dan anggotanya akan memberikan pengecualian jika gaya visual dinonaktifkan. Kelas-kelas ini meliputi:

Untuk informasi selengkapnya tentang menggunakan kelas ini untuk menggambar kontrol, lihat Cara: Menggunakan Kelas Penyajian Kontrol.

Elemen Gaya Visual dan Kelas Penyajian

Namespace System.Windows.Forms.VisualStyles mencakup kelas yang dapat digunakan untuk menggambar dan mendapatkan informasi tentang kontrol atau elemen UI apa pun yang didukung oleh gaya visual. Kontrol yang didukung mencakup kontrol umum yang memiliki kelas penyajian di System.Windows.Forms namespace (lihat bagian sebelumnya), serta kontrol lainnya, seperti kontrol tab dan kontrol rebar. Elemen UI lain yang didukung termasuk bagian menu Mulai , taskbar, dan area jendela nonkelola.

Kelas utama System.Windows.Forms.VisualStyles namespace layanan adalah VisualStyleElement dan VisualStyleRenderer. VisualStyleElement adalah kelas dasar untuk mengidentifikasi kontrol atau elemen antarmuka pengguna apa pun yang didukung oleh gaya visual. Selain itu VisualStyleElement sendiri, System.Windows.Forms.VisualStyles namespace mencakup banyak kelas VisualStyleElement berlapis dengan static properti yang mengembalikan VisualStyleElement untuk setiap status kontrol, bagian kontrol, atau elemen UI lainnya yang didukung oleh gaya visual.

VisualStyleRenderer menyediakan metode yang menarik dan mendapatkan informasi tentang masing-masing VisualStyleElement yang ditentukan oleh gaya visual sistem operasi saat ini. Informasi yang dapat diambil tentang elemen mencakup ukuran default, jenis latar belakang, dan definisi warnanya. VisualStyleRenderermembungkus fungsionalitas API gaya visual (UxTheme) dari bagian Windows Shell dari SDK Platform Windows. Untuk informasi selengkapnya, lihat Mengaktifkan Gaya Visual.

Untuk informasi selengkapnya tentang menggunakan VisualStyleRenderer dan VisualStyleElement, lihat Cara: Merender Elemen Gaya Visual.

Mengaktifkan Gaya Visual

Untuk mengaktifkan gaya visual untuk aplikasi yang ditulis untuk .NET Framework versi 1.0, programmer harus menyertakan manifes aplikasi yang menentukan bahwa ComCtl32.dll versi 6 atau yang lebih baru akan digunakan untuk menggambar kontrol. Aplikasi yang dibangun dengan .NET Framework versi 1.1 atau yang lebih baru dapat menggunakan Application.EnableVisualStyles metode Application kelas .

Memeriksa Dukungan Gaya Visual

Properti RenderWithVisualStyles kelas Application menunjukkan apakah aplikasi saat ini menggambar kontrol dengan gaya visual. Saat melukis kontrol kustom, Anda dapat memeriksa nilai RenderWithVisualStyles untuk menentukan apakah Anda harus merender kontrol Anda dengan atau tanpa gaya visual. Tabel berikut mencantumkan empat kondisi yang harus ada untuk RenderWithVisualStyles mengembalikan true.

Kondisi Catatan
Sistem operasi mendukung gaya visual. Untuk memverifikasi kondisi ini secara terpisah, gunakan IsSupportedByOS properti VisualStyleInformation kelas .
Pengguna telah mengaktifkan gaya visual dalam sistem operasi. Untuk memverifikasi kondisi ini secara terpisah, gunakan IsEnabledByUser properti VisualStyleInformation kelas .
Gaya visual diaktifkan dalam aplikasi. Gaya visual dapat diaktifkan dalam aplikasi dengan memanggil Application.EnableVisualStyles metode atau dengan menggunakan manifes aplikasi yang menentukan bahwa ComCtl32.dll versi 6 atau yang lebih baru akan digunakan untuk menggambar kontrol.
Gaya visual sedang digunakan untuk menggambar area klien jendela aplikasi. Untuk memverifikasi kondisi ini secara terpisah, gunakan VisualStyleState properti Application kelas dan verifikasi bahwa kondisi tersebut memiliki nilai VisualStyleState.ClientAreaEnabled atau VisualStyleState.ClientAndNonClientAreasEnabled.

Untuk menentukan kapan pengguna mengaktifkan atau menonaktifkan gaya visual, atau beralih dari satu gaya visual ke gaya visual lainnya, periksa UserPreferenceCategory.VisualStyle nilai dalam handler untuk SystemEvents.UserPreferenceChanging peristiwa atau SystemEvents.UserPreferenceChanged .

Penting

Jika Anda ingin menggunakan VisualStyleRenderer untuk merender kontrol atau elemen UI saat pengguna mengaktifkan atau mengalihkan gaya visual, pastikan Anda melakukan ini saat menangani UserPreferenceChanged peristiwa alih-alih UserPreferenceChanging peristiwa. Pengecualian akan dilemparkan jika Anda menggunakan VisualStyleRenderer kelas saat menangani UserPreferenceChanging.

Baca juga