Rumah >pembangunan bahagian belakang >C++ >Bagaimana saya boleh meletakkan kawalan telus ke atas gambar gambar di C#?
mencapai ketelusan dengan kawalan ke atas gambar gambar dalam c#
bertindih kawalan telus ke gambar gambar dalam aplikasi C# Windows membentuk aplikasi memerlukan penyelesaian, kerana pereka tidak menyokong secara langsung ini. Inilah cara menyelesaikannya:
Cabaran Reka Bentuk-Masa:
Pereka bentuk tingkap standard menghalang meletakkan kawalandi dalam gambar gambar. Sekiranya anda mencuba, ibu bapa kawalan akan menjadi bentuk, menghasilkan latar belakang legap di belakang imej gambar gambar.
Kaedah 1: Keibubapaan kawalan programatik
Pendekatan ini secara dinamik mengubah ibu bapa kawalan semasa runtime:
<code class="language-csharp">public Form1() { InitializeComponent(); Point pos = label1.Parent.PointToScreen(label1.Location); pos = pictureBox1.PointToClient(pos); label1.Parent = pictureBox1; label1.Location = pos; label1.BackColor = Color.Transparent; }</code>Coretan kod ini menggerakkan kawalan
(atau kawalan lain) untuk menjadi anak label1
, mengekalkan kedudukannya dan menetapkan latar belakangnya kepada telus. pictureBox1
Kaedah 2: Kawalan Gambar Kustom
Untuk penyelesaian masa reka bentuk yang lebih elegan, buat kawalan gambar gambar tersuai:
<code class="language-csharp">using System.ComponentModel; using System.Windows.Forms; using System.Windows.Forms.Design; // Add System.Design reference [Designer(typeof(ParentControlDesigner))] public class PictureContainer : PictureBox { }</code>Kelas
adat ini, menggunakan PictureContainer
, membolehkan anda menambah kawalan terus ke dalamnya dalam pereka, memelihara ketelusan. Dalam pereka, tukar jenis gambar gambar anda ke ParentControlDesigner
. PictureContainer
kawalan yang bertindih kepada BackColor
untuk ketelusan yang benar. Color.Transparent
Atas ialah kandungan terperinci Bagaimana saya boleh meletakkan kawalan telus ke atas gambar gambar di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!