在ASP.NET 2.0菜单中的MenuItems上创建相同宽度的命中区域,其中包括在运行时添加的MenuItems

时间:2010-06-12 14:31:08

标签: asp.net webforms menu menuitem delphi.net

在ASP.NET 2.0应用程序中,我想允许用户选择MenuItem,即使用户没有单击MenuItem的实际文本,而只是单击ASP.NET放置的高亮显示区域。当前选择的MenuItem(由DynamicHoverStyle.BackColor属性表示)。由于BackColor在子菜单中显示每个MenuItem的相同宽度,基于具有最长文本的MenuItem,我想使每个子MenuItem的命中区域(可点击区域)具有相同的宽度(在BackColor区域相同) ),无论在每个子菜单项中显示多少文本。

这是设置。我在MasterPage上使用菜单在我的每个页面上显示类似的菜单。有些页面会抑制此菜单,有些页面会添加另外的MenuItems,有时会添加到顶层,有时会将子MenuItem添加到现有的顶级MenuItem,有时两者都添加(将MenuItem添加到顶层,然后添加其他MenuItems作为新增顶级的子菜单。

此菜单具有水平方向,并且是动态的,因为最初只显示顶层,并且选中时会显示子菜单。

在可用性测试期间,我们注意到用户会选择一个顶级菜单项来显示子菜单,然后选择一个子菜单项,但不一定要点击子菜单项文本,而是单击BackColor区域。子菜单项。由于某些MenuItem的文本比其他文本更长,因此具有短文本的MenuItem具有相当大的BackColor区域。当用户单击BackColor区域但不直接在MenuItem文本上时,没有任何反应,因为用户实际上没有点击子菜单项目命中区域。

虽然可以看到显示的MenuItem的哪个部分是可点击的可视提示(当鼠标位于MenuItem文本上时,鼠标指针会变为链接光标,但只有鼠标指针悬停在BackColor上时才会变为链接光标)行为使用户感到困惑。他们突出显示了一个MenuItem,然后点击它,但什么也没发生。

我想点击一个MenuItem成功,即使用户没有点击MenuItem的实际文本,只需点击BackColor区域。

似乎应该有一个属性来控制显示的MenuItems的活动区域的宽度,但我没有看到它。鉴于我在运行时创建了一些这样的MenuItem,有什么建议吗?

1 个答案:

答案 0 :(得分:2)

添加了css类: .MenuClickArea {width:100%; display:block;} 并将该类分配给主页面aspx中有问题的菜单的DynamicMenuItemStyle和StaticMenuItemStyle

         

似乎可以解决问题。