Heim >Backend-Entwicklung >C++ >Wie zeige ich in C# eine transparente Beschriftung über einer PictureBox an?

Wie zeige ich in C# eine transparente Beschriftung über einer PictureBox an?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-25 16:16:10651Durchsuche

How to Display a Transparent Label Over a PictureBox in C#?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn