Maison >développement back-end >C++ >Comment créer un contrôle circulaire translucide avec du texte en C# ?

Comment créer un contrôle circulaire translucide avec du texte en C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-22 15:42:13310parcourir

How to Create a Translucent Circular Control with Text in C#?

Contrôle de texte circulaire translucide C#

Cet article résoudra un problème courant : comment créer un contrôle circulaire avec du texte et expliquera comment surmonter des défis tels que la transparence et le redimensionnement.

Question

Le défi initial est de créer un cercle de la même largeur que le carré inscrit. Le redimensionnement du cercle le fait chevaucher d’autres contrôles. De plus, l’arrière-plan du contrôle doit être transparent.

Solution

Contrôles personnalisés avec transparence

Pour obtenir la transparence, nous créons un contrôle personnalisé dérivé de la classe Control. L'interface contient un cercle coloré pouvant afficher du texte. Le contrôle expose des propriétés personnalisées pour définir l'opacité, le remplissage interne (la distance entre le rectangle intérieur et les limites du contrôle) et le remplissage de la police (la distance entre le texte et le rectangle intérieur).

Afin de rendre le contrôle transparent, nous remplaçons la méthode CreateParams et définissons son ExStyle sur WS_EX_TRANSPARENT.

Style personnalisé

Nous utilisons la méthode Control.SetStyle() pour modifier le comportement du contrôle en ajoutant des ControlStyles :

  • ControlStyles.Opaque : Empêche le dessin du BackGround, évitant ainsi l'administration du système.
  • ControlStyles.SupportsTransparentBackColor : Permet à un contrôle d'accepter une valeur Alpha pour sa couleur BackGround.

Gestion des événements de souris

Le contrôle prend en charge les événements de souris pour le glisser et le redimensionnement.

Traitement des polices

La police est codée en dur sur Segoe UI, ce qui simplifie le positionnement du texte au milieu de la zone circulaire. D'autres polices ont des lignes de base différentes et nécessitent un traitement plus complexe.

Code complet

Le code complet du contrôle personnalisé C# a été fourni.

Contrôles des applications

Pour utiliser le contrôle, créez un nouveau fichier de classe, collez-y le code fourni et construisez le projet. Le contrôle personnalisé apparaîtra dans la boîte à outils. Faites-le glisser et déposez-le sur le formulaire et ajustez ses propriétés personnalisées selon vos besoins.

Le résultat est un contrôle circulaire semi-transparent avec du texte qui peut être positionné et redimensionné sans chevaucher d'autres contrôles.

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