Heim >Backend-Entwicklung >C++ >Wie zeige ich in C# eine transparente Beschriftung über einer PictureBox an?
Transparente Beschriftung über PictureBox in C#-Form anzeigen
Wenn Benutzer in C#-Formularen versuchen, eine transparente Beschriftung auf einer PictureBox anzuzeigen, stoßen sie möglicherweise auf einen grauen Hintergrund anstelle des erwarteten Transparenzeffekts. Dies liegt daran, dass PictureBox kein Containersteuerelement ist.
Lösung 1: Code-Implementierung
Um dieses Problem zu beheben, ändern Sie den Formularkonstruktor, ändern Sie das übergeordnete Element der Beschriftung in eine PictureBox und berechnen Sie deren Position neu.
<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>
Lösung 2: Verbesserung der Entwurfszeit
Alternativ können Sie das Entwurfszeitproblem lösen, indem Sie eine benutzerdefinierte Klasse erstellen, die von ParentControlDesigner erbt.
<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>
Beschreibung
Legen Sie PictureBox mit der oben genannten Methode als Containersteuerelement fest. Die Beschriftung wird zu einem untergeordneten Steuerelement von PictureBox und seine Transparenz wird korrekt über PictureBox angezeigt.
Das obige ist der detaillierte Inhalt vonWie zeige ich in C# eine transparente Beschriftung über einer PictureBox an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!