Pregunta

En mi sistema, el título de un cuadro de grupo es siempre un color azul oscuro, ¿cómo cambio esto?

La respuesta a ¿Cómo se cambia el color de la frontera en un cuadro de grupo? muestra cómo puedo anular el dibujo de la leyenda y de la frontera, pero no quieren tener que lidiar con los estilos visuales y dibujo esquinas redondeadas y la similares.

¿Fue útil?

Solución

ForeColor es la propiedad que controla el color del texto en un cuadro de grupo.

Otros consejos

Esto debería hacer el truco:

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

Parece que puedo establecer el color del subtítulo estableciendo el ForeColor al color que quiero y estableciendo el estándar para FlatStyle.

Si el sistema es FlatStyle, o si es estándar y el ForeColor no se cambia desde el valor predeterminado, entonces el color del subtítulo se establece en el color especificado en el Tema XP.

Lo anterior no me ayuda.
He encontrado la solución aquí mediante la adición de la etiqueta GroupBox.Header:

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

En Delphi, al menos, el título es sólo el color de la fuente, que quiere asegurarse de que parentfont es falsa. Pero que pueden no ser útiles en absoluto a que ya ha etiquetado su pregunta .net

Configuración

groupBox1.ForeColor

cambia el color de primer plano de otros controles como el botón, etiqueta etc que reside en el interior del cuadro de grupo que tiene que ser desagradable en la mayoría de los casos si sólo se necesita para cambiar el color del texto del cuadro de grupo. Una solución sencilla será

    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++;
        }
    }

Por supuesto, el código anterior puede carecer de sentido si va a agregar controles mediante programación posterior a la caja de grupo, pero lo bueno es que puede manejar todas las situaciones que mediante la adición de condiciones adicionales en el código. Para estar completamente seguro, una lista de KeyValuePair de control y color de primer plano puede ser empleado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top