どのように私はグループボックスのキャプションの色を設定します
質問
は、私のシステムでは、グループボックスのキャプションは常に濃い青色で、私はこれを変更する方法を教えてください。
への回答どのようにグループボックス上の境界線の色を変更できますか?のは、私がキャプションと境界線の描画を無効にする方法を示していますが、私は、Visualスタイルと描画角を丸くして対処する必要がありますする必要はありません同様ます。
解決
前景色は、グループボックス内のテキストの色を制御する特性である。
他のヒント
これはトリックを行うべきます:
public Form1()
{
InitializeComponent();
GroupBoxRenderer.RenderMatchingApplicationState = false;
groupBox1.ForeColor = Color.Green;
}
私が私が欲しい色にForeColorプロパティを設定し、標準へのFlatStyleを設定することで、キャプションの色を設定することができそうです。
は、FlatStyleがシステムである場合、またはそれが標準だとForeColorプロパティをデフォルトから変更されていない場合は、キャプションの色はXPのテーマで指定された色に設定されています。
上記の私を助けていませんでした。
私はここで解決を見つけました。 GroupBox.Headerタグを追加してます:
<GroupBox>
<GroupBox.Header>
<TextBlock Text="Header" Foreground="Black"/>
</GroupBox.Header>
</GroupBox>
Delphiで少なくともキャプションだけでフォントの色で、あなたはparentfontが偽であることを確認します。あなたがタグ付けされたので、しかし、それはあなたに全く有益ではないかもしれないあなたの質問.NET
設定
groupBox1.ForeColor
は、あなただけのグループボックスのテキストの色を変更する必要がある場合、ほとんどのケースでは歓迎されないことがあるグループボックス内に存在するボタン、ラベルなどのような他のコントロールの前景色を変更します。簡単な回避策は次のようになります。
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++;
}
}
もちろん、あなたがプログラムで後でグループボックスにコントロールを追加する場合は、上記のコードでは無意味することができますが、良いことは、あなたがコード内の余分な条件を追加することにより、すべてのことの状況を扱うことができるです。二重に確認するには、コントロールと前景色のkeyvaluepairのリストを使用することができます。