Mencapai Tindanan Separuh Lutsinar dalam Borang Windows Tanpa Menyembunyikan Kawalan Anak
Mencipta tindanan separa lutsinar pada Borang Windows tanpa mengaburkan kawalan asas memerlukan menggunakan borang kedua berlapis di atas. Borang tindanan ini menggunakan sifat Opacity
untuk mengawal tahap ketelusannya.
Untuk membina tindanan ini, tambahkan kelas baharu pada projek anda dan laksanakan kelas Plexiglass
(seperti ditunjukkan dalam kod contoh di bawah). Kelas ini akan mewakili bentuk tindanan kami.
<code class="language-csharp">public class Plexiglass : Form { // ... Code implementation ... }</code>
Buat contoh kelas Plexiglass
, lulus borang utama sebagai parameter:
<code class="language-csharp">var overlay = new Plexiglass(this);</code>
Borang Plexiglass
akan melaraskan kedudukan dan saiznya secara dinamik agar sepadan dengan bentuk utama, memastikan liputan yang konsisten. Menutup tindanan melalui overlay.Close()
akan memulihkan keterlihatan penuh borang utama.
Untuk kesan visual yang lebih lancar, pertimbangkan untuk melumpuhkan peralihan Aero pada bentuk utama untuk mengelakkan animasi menggelegar:
<code class="language-csharp">if (Environment.OSVersion.Version.Major >= 6) { int value = 1; DwmSetWindowAttribute(this.Handle, DWMWA_TRANSITIONS_FORCEDISABLED, ref value, 4); }</code>
Coretan kod ini (dengan andaian DwmSetWindowAttribute
ditakrifkan dan diimport dengan sewajarnya) melumpuhkan peralihan Aero, menghasilkan penampilan tindanan yang lebih lancar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Tindanan Separuh Lutsinar pada Borang Windows Tanpa Mengaburkan Kawalan Kanak-kanak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!