Bagikan melalui


Pengendalian Rendering 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 kelas ControlPaint untuk merender beberapa kontrol Windows Forms umum. Namun, kelas ini menggambar kontrol dalam gaya Windows klasik, yang bisa membuat sulit untuk mempertahankan pengalaman antarmuka pengguna yang konsisten saat mendesain kontrol khusus dalam aplikasi dengan gaya visual diaktifkan.

.NET Framework 2.0 menyertakan kelas di namespace System.Windows.Forms yang merender bagian dan status kontrol umum dengan gaya visual. Masing-masing kelas ini mencakup metode static 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 namespace System.Windows.Forms (lihat bagian sebelumnya), serta kontrol lainnya, seperti kontrol tab dan kontrol bilah ulang. Elemen UI lain yang didukung termasuk bagian dari menu Mulai, taskbar, dan area nonklien jendela.

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

VisualStyleRenderer menyediakan metode yang menggambar dan mendapatkan informasi tentang setiap VisualStyleElement yang didefinisikan oleh gaya visual sistem operasi saat ini. Informasi yang dapat diambil tentang elemen mencakup ukuran default, jenis latar belakang, dan definisi warnanya. VisualStyleRenderer membungkus fungsionalitas API gaya visual (UxTheme) dari bagian Windows Shell dari Windows Platform SDK. Untuk informasi lebih lanjut, 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 metode Application.EnableVisualStyles kelas Application.

Memeriksa Dukungan Gaya Visual

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

Keadaan Catatan
Sistem operasi mendukung gaya visual. Untuk memverifikasi kondisi ini secara terpisah, gunakan properti IsSupportedByOS kelas VisualStyleInformation.
Pengguna telah mengaktifkan gaya visual dalam sistem operasi. Untuk memverifikasi kondisi ini secara terpisah, gunakan properti IsEnabledByUser kelas VisualStyleInformation.
Gaya visual diaktifkan dalam aplikasi. Gaya visual dapat diaktifkan dalam aplikasi dengan memanggil metode Application.EnableVisualStyles 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 properti VisualStyleState kelas Application 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 nilai UserPreferenceCategory.VisualStyle di handler untuk peristiwa SystemEvents.UserPreferenceChanging atau SystemEvents.UserPreferenceChanged.

Penting

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

Lihat juga

  • Pengecatan dan Penyajian Kontrol Kustom