Penyelesaian kepada masalah ketelusan kawalan PictureBox dalam C#
Ketelusan kawalan ialah ciri yang sangat berguna yang membolehkan elemen ditindih pada imej atau latar belakang. Walau bagaimanapun, dalam beberapa kes, pengguna mungkin menghadapi kesukaran untuk mencapai ketelusan yang diingini apabila menggunakan kawalan PictureBox.
Soalan:
Dalam borang C# yang mengandungi Label dan PictureBox yang memaparkan kemajuan muat turun, kesan ketelusan Label tidak berfungsi dengan betul, menyebabkan latar belakang kelabu dipaparkan dan bukannya kesan ketelusan yang dijangkakan.
Penyelesaian 1: Ubah suai kawalan ibu bapa
Secara lalai, Label terletak di luar PictureBox, menyebabkan latar belakang borang kelihatan. Penyelesaiannya adalah seperti berikut:
<code class="language-csharp"> public Form1() { InitializeComponent(); var pos = label1.Parent.PointToScreen(label1.Location); pos = pictureBox1.PointToClient(pos); label1.Parent = pictureBox1; label1.Location = pos; label1.BackColor = Color.Transparent; }</code>
Kod ini menukar kawalan induk Label kepada PictureBox, mengubah kedudukannya dan menetapkan BackColor kepada lutsinar.
Penyelesaian 2: Atribut masa reka bentuk
Sebagai alternatif, anda boleh menggunakan sifat masa reka bentuk untuk menyelesaikan masalah ini:
Tambah rujukan System.Design dan buat kelas yang mengandungi kod berikut:
<code class="language-csharp">using System.ComponentModel; using System.Windows.Forms; using System.Windows.Forms.Design; // 添加System.Design引用 [Designer(typeof(ParentControlDesigner))] class PictureContainer : PictureBox {}</code>
Gunakan PictureContainer dan bukannya PictureBox dalam borang. Harta ini memastikan pereka bentuk meletakkan Label dengan betul dalam PictureBox.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Ketelusan Benar dengan Kawalan PictureBox dan Label Bertindih dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!