Question
Dans un projet, je dois ajouter un contrôle cercle et afficher du texte au milieu.
Mon problème est que le cercle est trop petit et lorsque je le redimensionne, il chevauche les autres contrôles. Je veux que le cercle ait la même largeur que le carré.
Ou, comment rendre transparent l'arrière-plan du champ ?
Solution
Il s'agit d'un contrôle personnalisé dérivé de Control qui peut être rendu translucide.
L'interface est un cercle coloré pouvant contenir plusieurs chiffres.
Ce contrôle expose les propriétés personnalisées suivantes :
Opacité : Le niveau d'opacité de l'arrière-plan du contrôle [0, 255]
InnerPadding (rembourrage intérieur) : La distance entre le rectangle intérieur qui définit la limite du cercle et la limite de contrôle.
FontPadding (font padding) : La distance entre le texte et le rectangle intérieur.
Obtenez la transparence en remplaçant CreateParams, puis en définissant ExStyle |= WS_EX_TRANSPARENT;
La méthode Control.SetStyle() est utilisée pour modifier le comportement du contrôle, ajoutez les ControlStyles suivants :
▶ ControlStyles.Opaque : Empêche l'arrière-plan du contrôle d'être dessiné afin qu'il ne soit pas géré par le système. Utilisé conjointement avec CreateParams, la définition du style étendu du contrôle sur WS_EX_TRANSPARENT rend le contrôle entièrement transparent.
▶ ControlStyles.SupportsTransparentBackColor : Le contrôle accepte une valeur alpha pour sa couleur d'arrière-plan. Si vous ne définissez pas également ControlStyles.UserPaint, il ne sera pas utilisé pour simuler la transparence. Nous le ferons nous-mêmes par d'autres méthodes.
Pour voir comment cela fonctionne, créez un nouveau fichier de classe, remplacez tout le code qu'il contient par ce code, conservez l'espace de noms et construisez le projet/la solution.
De nouveaux contrôles personnalisés apparaîtront dans la boîte à outils. Faites-le glisser et déposez-le sur le formulaire. Modifiez ses propriétés personnalisées selon vos besoins.
Représentation visuelle du champ :
Remarque et clause de non-responsabilité
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!