Schriftfarbe in Listbox

Was wiederum ein prima Beispiel ist, wo man keinen Plugin benötigt, da man das mit einigen einfachen Declares lösen kann.

Dann wre vermutlich ein Ansatz, die HSV-Werte von selectedControlColor oder dessen Grauwertreprsentation zu analysieren und entsprechend die Textfarbe als wirklich kontrastierenden Grauwert einzustellen.
Wobei: Viel Aufwand fr etwas, das eigentlich das System sinnvoll fr einen erledigen sollte.

Ich bin der Nutzer.
Welche andere Software :wink:
Im Finder fällt es mir regelmäßig auf, bei anderer Software bislang nicht,
Ich ärgere mich über die fehlende Einstellmöglichkeit. Indsbesondere in meinem Programm helfe ich mir, indem ich die Textausgabe im CellTextPaint mit schwarzem Text ausgebe.

[quote=397067:@Christian Schmitz]Du kannst Die Farbe für den Text im textPaint Event einstellen.
Beim NSColorMBS gibt es ja Textfarben für Listen.
selectedTextColor vermutlich. Die könnte man ja dann nehmen für den Text.[/quote]

Ja, mache ich bereits. Finde ich nur umständlich.

[quote=397105:@Ulrich Bogun]Dann wäre vermutlich ein Ansatz, die HSV-Werte von selectedControlColor oder dessen Grauwertrepräsentation zu analysieren und entsprechend die Textfarbe als wirklich kontrastierenden Grauwert einzustellen.
Wobei: Viel Aufwand für etwas, das eigentlich das System sinnvoll für einen erledigen sollte.[/quote]

Genau, ich hätte erwartet, dass es das System vernünftig macht. oder zumindest eine Einstllung bietet. Unter Win10 kann man ja nicht mal so einfach die Auswahlfarbe ändern. :frowning:

:slight_smile:
“Kontrastreich”. War das die automatische Rechtschreibkorrektur?

Ich schtze, das war meine eigene Kreativitt :slight_smile:

Konterstreich schreibt sich ja auch mit E :smiley:

Hier eine selbstgebastelte Einfrbmethode nach Pi * Daumen-Handabstimmung in purem Xojo-Code:

Function CellTextPaint(g As Graphics, row As Integer, column As Integer, x as Integer, y as Integer) Handles CellTextPaint as Boolean If Me.Selected(row) Then Dim hc As Color = HighlightColor Dim value As Double = (hc.Magenta * 0.6 + hc.Cyan * 0.85 + hc.Yellow * 0.2) / 3 Dim nc As Color = If(value < 0.05, Color.Black, Color.White) g.ForeColor = nc End If #Pragma Unused x #Pragma Unused y #Pragma Unused column End Function

Vielen Dank, ich hatte das bislang so:

dim i as integer
if me.selected(row)=true then
  i=(HighlightColor.Red+HighlightColor.Green+HighlightColor.Blue)*2/3
end
if i>250 then
  g.foreColor=rgb(0,0,0)
else
  g.foreColor=rgb(255,255,255)
end

Vom Prizip hnlich, hat bislang gengt :slight_smile:

So etwas elegantes fllt mir nicht ein:
Dim nc As Color = If(value < 0.05, Color.Black, Color.White)

Da hnge ich wohl noch weit zurck. Zumindest verstehe ich es schon :slight_smile: