2009-02-26 3 views
4

В моей системе заголовок группового ящика всегда темно-синего цвета, как мне это изменить?Как установить цвет заголовка GroupBox

Ответ на How do you change the color of the border on a group box? показывает, как я могу переопределить рисунок подписи и границы, но я не хочу иметь дело с визуальными стилями и рисовать закругленные углы и тому подобное.

ответ

4

ForeColor - это свойство, которое управляет цветом текста в групповом ящике.

0

В Delphi, по крайней мере, подпись - это только цвет шрифта, вы хотите убедиться, что parentfont является ложным. Но это может быть бесполезно для вас, поскольку вы отметили свой вопрос .net

1

Кажется, я могу установить цвет субтитров, установив ForeColor на цвет, который я хочу, и установив FlatStyle в стандарт.

Если FlatStyle является Системой, или если он является стандартным, а ForeColor не изменен от значения по умолчанию, то цвет заголовка будет установлен в цвет, указанный в теме XP.

3

Это должно сделать трюк:

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

Это ответ на другой вопрос, который я задал, если вы разместите этот ответ на [http://stackoverflow.com/questions/590864/how-do-i-set-the-font-color-of-a -label-to-the-same-as-the-caption-color-of-a-grou] Я приму его там –

1

выше не помогло мне.
Я нашел решение here, добавив GroupBox.Header тег:

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

Что для WPF, а не WinForms. – almhe03

0

Установка

groupBox1.ForeColor 

изменяет ForeColor других элементов управления кнопки, метки и т.д. проживающему внутри GroupBox, который должен быть нежелательны как в большинстве случаев, если вам нужно только изменить цвет текста группового ящика. Простое решение будет

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

Конечно приведенный выше код может быть бессмысленным, если вы добавляете элементы управления программными средствами позже в GroupBox, но хорошо, что вы можете обрабатывать все, что ситуации, путем добавления дополнительных условий в коде. Чтобы быть вдвойне уверенным, можно использовать список keyvaluepair управления и forecolor.

Смежные вопросы