Можно ли заставить GroupBox ForeColor вести себя так же, как Button в WinForms? - PullRequest
0 голосов
/ 14 ноября 2010

Я ожидаю, что текст заголовка GroupBox и заголовка кнопки будет одного цвета, если они имеют одинаковый ForeColor (а также другие элементы управления, установленные аналогично).

Свойство ForeColor для GroupBox и нескольких кнопок имеет значение ControlText, но они отображаются как синие (группа) и черные (кнопки). Предполагая, что они соответствуют текущей теме XP. Вопрос в том, как установить свойства этих элементов управления или элементов управления Winforms в целом, чтобы их поведение было согласованным и ожидаемым? Или это уже правильно и я недопонимаю?

1 Ответ

1 голос
/ 14 ноября 2010

Это не совсем то, как работает тематика. Он переопределяет свойства элементов управления по умолчанию в соответствии с выбранной пользователем темой. Более ярким примером является ProgressBar.ForeColor, это будет пульсирующая зеленая полоса в Vista, независимо от того, какой цвет вы выберете в конструкторе.

Fwiw, есть довольно много боли, которую вы можете испытать, когда пытаетесь переопределить это. GroupBox.ForeColor является очень заметным примером. Он будет иметь цвет темы (он, между прочим, подделан), если вы никогда не назначите ForeColor самостоятельно. Как только вы это сделаете, вы никогда не сможете сбросить его обратно. Даже если вы снова назначите ControlText, вы получите черный цвет, а не цвет темы. Это несколько неизбежно из-за способа реализации «окружающих свойств» в Windows Forms. Называть это ошибкой не было бы неоправданно. Не возиться с этим - лучший способ избежать этой проблемы, ваш пользователь не будет жаловаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...