Уважение тем XP при разработке пользовательского интерфейса WinForms - PullRequest
6 голосов
/ 30 сентября 2008

Как вы работаете с различными темами XP при разработке пользовательского интерфейса WinForms? Вы избегаете жестко закодированных значений цвета или просто признаете, что ваш пользовательский интерфейс не будет хорошо смотреться на нестандартных темах?

Например, у меня есть светло-голубая панель градиента, которая хорошо смотрится на фоне стандартного контрольного цвета фона, но будет конфликтовать с другими пользовательскими темами. Какой хороший подход выбрать?

1 Ответ

10 голосов
/ 30 сентября 2008

Избегайте шестнадцатеричных цветов и цветов с такими именами, как «Белый» или «Зеленый». Палитра цветов для большинства объектов должна отображать цвета с такими именами, как «ActiveWindow» или «ForegroundText». Это те цвета, которые вы хотите использовать. Они также доступны через код, и вы хотите выбрать их так, чтобы имена имели некоторое отношение к тому, как они используются. Например, не устанавливайте «ForegroundText» в качестве цвета фона только потому, что вы хотите черный фон. Если у вас есть градиент, используйте эти цвета для построения градиента. Кроме того, при изменении темы вам может потребоваться обработать событие.

Это , если вы решите уважать темы. Если у вас действительно отличный интерфейс, вы можете указать свои собственные цвета. В этом случае никогда не использует цвета окон, потому что они не будут надежными, и вы можете получить что-то действительно уродливое. Это означает, что вам нужно пойти и изменить все значения по умолчанию в стандартных элементах управления, но если вы делаете это, у вас, вероятно, все равно будут свои собственные элементы управления.

Итак, следует помнить, что это снимок "все или ничего": либо соблюдайте темы и всегда используйте цвета, определенные на основе элементов виджетов Windows, либо не используйте темы и никогда используйте эти цвета вообще.

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