2017-01-03 1 views
0

enter image description hereC# WindowsForm - Wie ändert man die Farbe eines Tab-Headers, abhängig davon, wie dunkel die Hintergrundfarbe ist?

Ich will nicht die Hintergrundfarbe des Headers ändern, Ich mag die Textfarbe im Header ändern, basierend auf, wie dunkel oder hell die Hintergrundfarbe des Headers ist.

Wenn die Hintergrundfarbe der Kopfzeile schwarz oder dunkelviolett ist, dann machen Sie den Text weiß. Oder wenn die Hintergrundfarbe der Kopfzeile hellgelb ist, mache den Text schwarz.

Danke.

+0

Bitte vandalisiere deine Posts nicht. Durch die Veröffentlichung im Stack Exchange-Netzwerk haben Sie der SE ein widerrufliches Recht eingeräumt, diesen Inhalt zu verteilen (unter der [CC BY-SA 3.0-Lizenz] (https://creativecommons.org/licenses/by-sa/3.0) /)). Nach SE-Richtlinien wird jeglicher Vandalismus rückgängig gemacht. Wenn Sie diesen Beitrag von Ihrem Konto trennen möchten, lesen Sie [Was ist der richtige Weg für eine Ablehnungsanfrage?] (Https://meta.stackoverflow.com/q/323395) – NobodyNada

Antwort

1

Stellen Sie den Zeichenmodus von Ihnen Registerkarte:

tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed; 
tabControl1.DrawItem += tabControl1_DrawItem; 

Und dann:

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

Natürlich könnten Sie die Grenzen anpassen, auch.

Verwandte Themen