Создание зон попадания одинаковой ширины в элементах MenuItem в меню ASP.NET 2.0, включающих элементы MenuItem, добавленные во время выполнения. - PullRequest
1 голос
/ 12 июня 2010

В приложении ASP.NET 2.0 я хочу разрешить пользователю выбирать элемент MenuItem, даже если пользователь не щелкает фактический текст элемента MenuItem, а вместо этого только щелкает область выделения, которую ASP.NET размещает вокругтекущий выбранный MenuItem (представленный свойством DynamicHoverStyle.BackColor).Поскольку BackColor отображается одинаковой ширины для каждого MenuItem в подменю, на основе MenuItem с самым длинным текстом, я хотел бы сделать зону попадания (активную область) для каждого вспомогательного MenuItem одинаковой ширины (одинаковой в области BackColor).), независимо от того, сколько текста отображается в каждом отдельном элементе MenuItem.

Вот настройки.Я использую меню на главной странице для отображения аналогичного меню на каждой из моих страниц.Некоторые страницы подавляют это меню, и некоторые из них добавляют дополнительные элементы MenuItem, иногда на верхний уровень, иногда добавляя под-элементы MenuItem к существующему элементу меню верхнего уровня, а иногда и оба (добавление элемента MenuItem к верхнему уровню и затем дополнительных элементов MenuItemкак подменю к этому добавленному верхнему уровню.

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

Во время юзабилити-тестирования мы заметили, что пользователи выбирают элемент меню верхнего уровня для отображения подменю, а затем выбирают элемент подменю, но не обязательно щелкая по тексту элемента подменю, а вместо этого щелкают по области BackColor подменю.item. Поскольку текст некоторых элементов MenuIms длиннее других, элементы MenuItems с коротким текстом имеют довольно большую область BackColor. Когда пользователь нажимает на область BackColor, но не непосредственно на тексте MenuItem, ничего не происходит, так как пользователь этого не сделална самом деле нажмите Oв зоне попадания элемента подменю.

Хотя существуют визуальные подсказки относительно того, какая часть отображаемого MenuItem является интерактивной (указатель мыши меняется на курсор ссылки, когда указатель мыши находится над текстом MenuItem, но не когдаэто только зависание над BackColor), это поведение смутило пользователей.Они выделили MenuItem и щелкнули по нему, но ничего не произошло.

Я бы хотел, чтобы щелчок MenuItem был успешным, даже если пользователь не щелкнул по фактическому тексту MenuItem, а просто нажал BackColorarea.

Кажется, что где-то должно быть свойство для управления шириной активной области отображаемых элементов MenuIms, но я этого не вижу.Любые предложения, учитывая, что я создаю некоторые из этих MenuItems во время выполнения?

1 Ответ

2 голосов
/ 18 июня 2010

Добавлен класс css: .MenuClickArea {width: 100%;display: block;} и назначил этот класс для DynamicMenuItemStyle и StaticMenuItemStyle рассматриваемого меню на главной странице aspx

, похоже, добился цели.

...