在我的系统上,组合框的标题总是深蓝色,我该如何更改?
How do you change the color of the border on a group box?的答案显示了我如何覆盖标题和边框的绘制,但我不想处理视觉样式和绘制圆角等。
答案 0 :(得分:4)
ForeColor是控制组合框中文本颜色的属性。
答案 1 :(得分:3)
这应该是诀窍:
public Form1()
{
InitializeComponent();
GroupBoxRenderer.RenderMatchingApplicationState = false;
groupBox1.ForeColor = Color.Green;
}
答案 2 :(得分:1)
似乎我可以通过将ForeColor设置为我想要的颜色并将FlatStyle设置为Standard来设置标题颜色。
如果FlatStyle是System,或者它是Standard并且ForeColor没有从默认值更改,那么标题颜色将设置为XP主题中指定的颜色。
答案 3 :(得分:1)
以上对我没有帮助 我通过添加GroupBox.Header标记找到了解决方案here:
<GroupBox>
<GroupBox.Header>
<TextBlock Text="Header" Foreground="Black"/>
</GroupBox.Header>
</GroupBox>
答案 4 :(得分:0)
至少在Delphi中,标题只是字体颜色,你想确保parentfont为false。但是,自从您标记了问题.net
后,这可能对您没有任何用处答案 5 :(得分:0)
设置
groupBox1.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++;
}
}
当然,如果您稍后以编程方式将控件添加到组框中,则上述代码可能毫无意义,但好处是您可以通过在代码中添加额外条件来处理所有这些情况。更确切地说,可以使用控制和前色的关键值对列表。