Question

Sur mon système, la légende d'une zone de groupe est toujours une couleur bleu foncé, comment puis-je changer cela?

La réponse à Comment changer la couleur de la bordure sur une zone de groupe? montre comment je peux passer outre le dessin de la légende et de la frontière, mais je ne veux pas avoir à traiter avec les styles visuels et dessin des coins arrondis et la comme.

Était-ce utile?

La solution

ForeColor est la propriété qui contrôle la couleur du texte dans une zone de groupe.

Autres conseils

Cela devrait faire l'affaire:

public Form1()
{
  InitializeComponent();
  GroupBoxRenderer.RenderMatchingApplicationState = false;
  groupBox1.ForeColor = Color.Green;
}

Il semble que je peux définir la couleur des sous-titres en définissant le ForeColor à la couleur que je veux et le réglage de la FlatStyle à la norme.

Si le système est FlatStyle, ou si elle est standard et la ForeColor ne change pas la valeur par défaut, la couleur des sous-titres est réglé sur la couleur spécifiée dans le thème XP.

Ce qui précède ne m'a pas aidé.
J'ai trouvé ici la solution en ajoutant la balise GroupBox.Header:

<GroupBox>
  <GroupBox.Header>
      <TextBlock Text="Header" Foreground="Black"/>
  </GroupBox.Header>
</GroupBox>

Dans Delphi au moins, la légende est juste la couleur de police, vous voulez vous assurer ParentFont est faux. Mais cela ne peut pas être utile à tout pour vous depuis que vous avez taguée votre question .net

Réglage

groupBox1.ForeColor

change la forecolor d'autres commandes comme le bouton, l'étiquette etc résidant à l'intérieur de la zone de groupe qui doit être indésirable dans la plupart des cas si vous avez besoin de changer la couleur du texte de groupbox. Une solution simple sera

    private void button1_Click(object sender, EventArgs e)
    {
        List<Color> lstColour = new List<Color>();
        foreach (Control c in groupBox1.Controls)
            lstColour.Add(c.ForeColor);

        groupBox1.ForeColor = Color.Red; //the colour you prefer for the text

        int index = 0;
        foreach (Control c in groupBox1.Controls)
        {
            c.ForeColor = lstColour[index];
            index++;
        }
    }

Bien sûr, le code ci-dessus peut être vide de sens si vous ajoutez des contrôles par programme plus tard à la groupbox, mais la bonne chose est que vous pouvez gérer toutes les situations que en ajoutant des conditions supplémentaires dans le code. Pour être doublement sûr, une liste de KeyValuePair de contrôle et forecolor peut être utilisé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top