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
Lepaskan: 2025-01-25 16:31:09
asal
745 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan