Maison >développement back-end >C++ >Comment afficher une étiquette transparente sur une boîte d'image en C #?

Comment afficher une étiquette transparente sur une boîte d'image en C #?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-25 16:16:10690parcourir

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

Affichez l'étiquette transparente au-dessus de la boîte de piction dans la fenêtre C #

Dans la fenêtre C #, lorsque vous essayez d'afficher des étiquettes transparentes sur Pictionbox, l'utilisateur peut rencontrer un fond gris au lieu de l'effet transparent attendu. En effet, Pictionbox n'est pas un contrôle de conteneur.

Solution 1: implémentation du code

Pour résoudre ce problème, veuillez modifier le constructeur de la fenêtre, modifiez le niveau parent de l'étiquette en Pictionbox et re-calculer sa position.

Solution 2: amélioré

<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>

ou, pour résoudre le problème de la conception du problème en créant une classe personnalisée héritée à partir de la classe personnalisée qui hérite du parentControldEsigner.

Explication

<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>
Le Pictionbox est défini comme un contrôle de conteneur via la méthode ci-dessus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn