comment utiliser deux couleurs dans l’étiquette pour le texte en c#

la programmation


J’ai une étiquette avec du texte : Projet …..Dans ce texte, j’ai besoin d’un pro dans une couleur et d’un projet dans une autre couleur

Solution 1

Vous ne pouvez avoir qu’une seule couleur dans une étiquette.
Pour contourner le problème, vous pouvez utiliser deux étiquettes (avec des couleurs de police différentes) pour ce faire.

Une solution plus complexe consisterait à créer votre propre contrôle utilisateur.

Solution 4

Une fois, j’ai dû créer une étiquette “Dégradé”… Voici le code (fonctionne dans Winforms)

public partial class GradientLabel : Label {

public LabelEx() {
    InitializeComponent();
}

protected override void OnPaint(PaintEventArgs e) {
    Font font = new Font("Tahoma", 48f, FontStyle.Bold);
    LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, Width, Height + 5), Color.Gold, Color.Black, LinearGradientMode.Vertical);
    e.Graphics.DrawString(Text, font, brush, 0, 0);
}

}

Ce n’est pas exactement “deux couleurs”, mais cela peut vous conduire à une solution.

Solution 8

Une solution de contournement. Créez un “bouton” inférieur avec une partie du texte, puis continuez à le superposer avec des boutons contenant certains caractères de différentes couleurs et transparent arrière-plans, superposant le “bouton” inférieur. J’utilise “bouton” car ce sont tous des objets factices en forme de bouton. Seul l’élément de niveau supérieur est un véritable « bouton », ce qui revient en réalité à avoir un événement onclick.

C’est d’ailleurs assez pratique dans la mesure où il est utilisé dans certains types d’escroqueries par phishing – superposant les données réelles du site Web avec des contrôles transparents qui acceptent l’entrée, la renvoient aux fraudeurs, puis signalent une erreur (en allant vers la vraie page pour la rentrée) ou même saisir le texte dans l’écran réel lorsque la couche invisible disparaît.

Solution 2

essayez de définir la propriété de texte sur du texte HTML comme

lbl.Text="<span style="color:Red;">Pro</span><span><span style="color:Green;">ject</span>";
</span>

depuis l’arrière du formulaire ASPX.

Solution 5

Si vous utilisez WPF, c’est assez simple.
Voir ma solution dans Coloration sélective du texte dans WPF textBox[^]

Vous pouvez le faire avec un Label de manière comparable.

コメント

タイトルとURLをコピーしました