2010-04-03 21 views
5

Ich arbeite derzeit an einem Projekt, wo, wie verschiedene Benutzer Text zu einem Dokument hinzufügen, möchte ich die Farbe des Textes ändern.Programmatisch Farben in C# ändern

Ursprünglich verwendete ich die vordefinierten Farbwerte von C# und setzte nur die, die ich verwenden wollte, in eine Enum in meiner Anwendung und durchblätterte die Farben, während verschiedene Benutzer Anmerkungen hinzufügten. Das funktioniert gut und ich bin mit dieser Lösung einverstanden.

Allerdings hätte ich auch entscheiden können, die RGB-Werte und abgeleiteten Farben so zu ändern. Ich bin gespannt auf welche Art von Algorithmus wäre gut, um diese Werte zu ändern, um verschiedene Sätze von Farben zu erhalten. Dies ist mehr eine Übung von etwas, worüber ich nachgedacht habe.

Um ein wenig zu verdeutlichen, möchte ich nicht nur einen der Farbwerte (R, G oder B) erhöhen, weil mir das nicht genug Abwechslung in meinen Farben bietet. Aber ich denke nicht, dass es auch funktionieren würde, alle drei gleiche Beträge zu erhöhen. Ich muss auch auf wiederholte Farben achten (bis zu einem gewissen Punkt). Die Anforderungen für mein Projekt erwarten maximal 10 verschiedene Reviewer.

Antwort

4

Die beste Lösung für diese Art von Problem ist die Verwendung von HSL- oder HSV-Werten und die Variation des Farbtons. Dann zurück in RGB konvertieren.

See this link for more information.

+0

Danke, Brian. Wow, das ist viel einfacher als ich dachte. Ziemlich ordentliche Lösung. – JasCav

+0

@Jason: Ja, es scheint definitiv komplizierter, denn wenn Sie mit einem Farbmodell arbeiten, das nicht dem entspricht, was Sie tun möchten, ist * es * schwieriger. –