私のシステムでは、グループボックスのキャプションは常に濃い青色ですが、これを変更するにはどうすればよいですか?
グループボックスの境界線の色をどのように変更しますか?は、キャプションと境界線の描画をオーバーライドする方法を示していますが、ビジュアルスタイルや丸みを帯びた角の描画などを処理する必要はありません。
私のシステムでは、グループボックスのキャプションは常に濃い青色ですが、これを変更するにはどうすればよいですか?
グループボックスの境界線の色をどのように変更しますか?は、キャプションと境界線の描画をオーバーライドする方法を示していますが、ビジュアルスタイルや丸みを帯びた角の描画などを処理する必要はありません。
ForeColor は、グループ ボックス内のテキストの色を制御するプロパティです。
上記は私を助けませんでした。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
グループボックスのテキストの色のみを変更する必要がある場合、ほとんどの場合歓迎されないグループボックス内にあるボタン、ラベルなどの他のコントロールの前色を変更します。簡単な回避策は次のとおりです。
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++;
}
}
もちろん、後でプログラムによってグループボックスにコントロールを追加する場合、上記のコードは無意味になる可能性がありますが、コードに条件を追加することで、そのすべての状況を処理できるという利点があります。念のため、コントロールとフォアカラーのキーと値のペアのリストを使用できます。