Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencipta Kawalan Pekeliling Lutsinar dengan Teks dalam C#?
Artikel ini akan menyelesaikan masalah biasa: cara membuat kawalan bulatan dengan teks dan menerangkan cara mengatasi cabaran seperti ketelusan dan saiz semula.
Cabaran awal adalah untuk mencipta bulatan yang sama lebar dengan segi empat sama yang ditulis. Saiz semula bulatan menyebabkan ia bertindih dengan kawalan lain. Selain itu, latar belakang kawalan perlu telus.
Kawalan tersuai dengan ketelusan
Untuk mencapai ketelusan, kami mencipta kawalan tersuai yang diperoleh daripada kelas Kawalan. Antara muka mengandungi bulatan berwarna yang boleh memaparkan teks. Kawalan mendedahkan sifat tersuai untuk menetapkan kelegapan, pelapik dalam (jarak antara segi empat tepat dalam dan sempadan kawalan), dan pelapik fon (jarak antara teks dan segi empat tepat dalam).
Untuk menjadikan kawalan telus, kami mengatasi kaedah CreateParams dan menetapkan ExStylenya kepada WS_EX_TRANSPARENT.
Gaya tersuai
Kami menggunakan kaedah Control.SetStyle() untuk mengubah suai tingkah laku kawalan dengan menambah ControlStyles:
Mengendalikan acara tetikus
Kawalan menyokong acara tetikus untuk menyeret dan mengubah saiz.
Pemprosesan fon
Fon dikodkan keras kepada Segoe UI, yang memudahkan kedudukan teks di tengah-tengah kawasan bulatan. Fon lain mempunyai garis dasar yang berbeza dan memerlukan pemprosesan yang lebih kompleks.
Kod penuh
Kod lengkap kawalan tersuai C# telah disediakan.
Untuk menggunakan kawalan, buat fail kelas baharu, tampal kod yang disediakan ke dalamnya dan bina projek. Kawalan tersuai akan muncul dalam kotak alat. Seret dan lepaskannya ke dalam borang dan laraskan sifat tersuainya mengikut keperluan.
Hasilnya ialah kawalan bulat separa lutsinar dengan teks yang boleh diletakkan dan diubah saiznya tanpa bertindih dengan kawalan lain.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Kawalan Pekeliling Lutsinar dengan Teks dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!