Мне нужно нарисовать несколько произвольных строк в некоторых непрозрачных прямоугольных областях.Мне нужно, чтобы цвет фона этих областей был уникальным для данной строки.
Скажем, если я нарисую "Париж" и "Париж1", их цвет должен отличаться.Но если я нарисую «Париж» синим, то и другой «Париж» тоже должен быть нарисован синим.
Я еще раз подчеркиваю, что цвет должен быть непрозрачным.
Для этого я нашел простое решение:
rectangleBackColor = Color.FromArgb(myString.GetHashCode())
Проблема в непрозрачности.Мне нужно «исключить» компонент «A» (альфа).
Теперь такой код может работать
rectangleBackColor = Color.FromArgb(myString.GetHashCode())
' set the alpha value = 255 for an opaque color '
rectangleBackColor = Color.FromArgb(255, rectangleBackColor)
, но он может потерять уникальность строкового цвета.
Скажем, у меня есть два разных хеш-кода (в гекса) x AB 11 22 33
и x FF 11 22 33
.
Установка AB
в FF
Я делаю для двух разных строк один и тот же цвет фона (x FF 11 22 33
).Это не хорошо.