Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencapai Ketelusan Benar dengan Kawalan PictureBox dan Label Bertindih dalam C#?

Bagaimana untuk Mencapai Ketelusan Benar dengan Kawalan PictureBox dan Label Bertindih dalam C#?

Susan Sarandon
Susan Sarandonasal
2025-01-25 16:31:09777semak imbas

How to Achieve True Transparency with PictureBox Controls and Overlaid Labels in C#?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn