繁体   English   中英

如何设置GroupBox标题颜色

[英]How do I set the GroupBox caption colour

在我的系统上,组合框的标题总是深蓝色,我该如何更改?

答案如何更改组框边框的颜色? 展示了我如何覆盖标题和边框的绘制,但我不想处理视觉样式和绘制圆角等。

ForeColor是控制组合框中文本颜色的属性。

这应该做的伎俩:

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

以上对我没有帮助。
我找到了解决办法在这里通过添加GroupBox.Header标签:

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

看来我可以通过将ForeColor设置为我想要的颜色并将FlatStyle设置为Standard来设置标题颜色。

如果FlatStyle是System,或者它是Standard并且ForeColor未从默认值更改,则标题颜色将设置为XP主题中指定的颜色。

至少在Delphi中,标题只是字体颜色,你想确保parentfont为false。 但是,因为你标记了你的问题.net,这可能对你没有用

设置

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

当然,如果您稍后以编程方式将控件添加到组框中,则上述代码可能毫无意义,但好处是您可以通过在代码中添加额外条件来处理所有这些情况。 更确切地说,可以使用控制和前色的关键值对列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM