C#WindowsForm-如何根据背景颜色的暗度更改选项卡页标题文本颜色?

C#WindowsForm-如何根据背景颜色的暗度更改选项卡页标题文本颜色?,c#,winforms,colors,tabs,C#,Winforms,Colors,Tabs,我不想更改标题的背景色,我想根据标题的背景色有多暗或多亮来更改标题中的文本颜色。 即,如果标题的背景色为黑色或深紫色,则将文本设置为白色。 或者,如果标题的背景颜色为亮黄色,则将文本设置为黑色 谢谢。设置选项卡页面的绘图模式: tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed; tabControl1.DrawItem += tabControl1_DrawItem; 然后: private void tabControl1_DrawItem(

我不想更改标题的背景色,我想根据标题的背景色有多暗或多亮来更改标题中的文本颜色。

即,如果标题的背景色为黑色或深紫色,则将文本设置为白色。 或者,如果标题的背景颜色为亮黄色,则将文本设置为黑色


谢谢。

设置选项卡页面的绘图模式:

tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;
tabControl1.DrawItem += tabControl1_DrawItem;
然后:

private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground();
    var color = GetDesiredColor(e.Index); // TODO: Implement it for yourself
    TextRenderer.DrawText(e.Graphics, tabControl1.TabPages[e.Index].Text, e.Font, e.Bounds, color);
}

当然,您也可能需要调整边界。

请不要破坏您的帖子。通过在Stack Exchange网络上发布,您已授予SE分发该内容的不可撤销的权利(根据)。根据SE政策,任何故意破坏行为都将恢复原状。如果您想解除此帖子与您帐户的关联,请参阅