Почему цвет кнопки раскрывающегося списка asp.net привязан к цвету окна?

Элемент управления раскрывающимся списком ASP.NET имеет стрелку, по которой можно щелкнуть, чтобы раскрыть список, этот цвет стрелки привязан к цветовой схеме окон пользователей. Это неудобно для меня, и мне нужен обходной путь. Тем не менее, мне интересно, знает ли кто-нибудь (или догадывается) о стратегии привязки этой стрелки раскрывающегося списка к системному цвету?


person Keith    schedule 26.02.2009    source источник


Ответы (5)


За кулисами элементы управления Winforms используют элементы управления Win32, которые существуют с Windows 3.0 (или 3.0 все еще была 16-битной? Я не помню). Под обложкой скрывается много наследия, и в те дни казалось, что это имеет смысл делать это именно так. Я действительно думаю, что сегодня все еще имеет смысл обеспечивать некоторый уровень согласованности между пользовательскими интерфейсами всех приложений платформы.

person cdonner    schedule 26.02.2009

Действительно, стиль вашего выпадающего списка зависит от вашего навигатора. Некоторые навигаторы предлагают больше поддержки для этого, чем другие. То же самое происходит, например, с флажками.

person Matias    schedule 26.02.2009

Браузеры несут ответственность за превращение тегов ввода формы в элементы управления пользовательского интерфейса. Internet Explorer и другие браузеры делают это с помощью элементов управления пользовательского интерфейса операционной системы. «Веб-страница хочет <select>? У нас уже есть этот элемент управления!»

Однако проблема, с которой вы, вероятно, сталкиваетесь, заключается в том, что Internet Explorer имеет печально известную плохую поддержку стилей для этих элементов управления, особенно элемента управления <select>. Другие современные браузеры, такие как FireFox и Chrome, обеспечивают лучшую поддержку.

В настоящее время единственными вариантами для IE являются: (а) отказаться от элемента <select> в пользу какого-либо компонента на основе javascript или (б) дождаться IE8 и надеяться, что у него будет лучшая поддержка стилей. Поскольку очень и очень трудно найти реализацию <select> javascript, обеспечивающую надежную поддержку клавиатуры, многие люди предпочитают пока просто жить с уродливыми <select> блоками в IE, жертвуя стилем ради удобства использования и доступности.

person Ken Browning    schedule 26.02.2009
comment
Для меня в IE6 все выглядит так же, как и в Firefox 3.0.6. Я просто устанавливаю свою цветовую схему xp на оливково-зеленую и помещаю это на страницу aspx: ‹asp:DropDownList ID=DropDownList1 runat=server› ‹/asp:DropDownList› Он отображается с оливково-зелеными стрелками. - person Keith; 26.02.2009
comment
Я думаю, что если бы вы применили стили CSS к элементу select, вы бы заметили разницу между IE6 и FF3. - person Ken Browning; 26.02.2009

Это не имеет ничего общего с ASP.NET; вы можете просматривать тот же сайт на Mac, и он будет выглядеть по-другому. Вот как Windows отображает этот тип элемента. Если вам это не нравится, то вам придется создать свой собственный. Это уже сделано.

person Josh Stodola    schedule 26.02.2009

Браузеры в той или иной степени подхватывают пользовательские настройки цвета из ОС, как и любое другое приложение, поэтому при отсутствии каких-либо заданных автором настроек они обычно являются значениями по умолчанию.

Имейте в виду, что как только вы начнете настраивать стили для выбора и других элементов формы, вы должны быть уверены, что предоставили достаточно полный набор правил стиля, иначе все это может очень быстро полететь к черту в ручной тележке, насколько быстро, зависит от браузер.

person seanb    schedule 26.02.2009