代码之家  ›  专栏  ›  技术社区  ›  Cary Jensen

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

  •  1
  • Cary Jensen  · 技术社区  · 16 年前

    在ASP.NET 2.0应用程序中,我希望允许用户选择MenuItem,即使用户没有单击MenuItem的实际文本,而是只单击ASP.NET在当前选定MenuItem周围放置的突出显示区域(由dynamicOverstyle.BackColor属性表示)。由于子菜单中每个菜单项的背景色显示的宽度相同,因此基于文本最长的菜单项,我希望使每个子菜单项的命中区域(可单击区域)的宽度相同(背景色区域相同),而不管每个子菜单项中显示多少文本。

    这是设置。我使用母版页上的菜单在每个页面上显示类似的菜单。有些页面取消显示此菜单,有些页面添加了附加菜单项,有时添加到顶级菜单项,有时添加子菜单项到现有顶级菜单项,有时同时添加二者(将菜单项添加到顶级菜单项,然后将附加菜单项作为子菜单项添加到新添加的顶级菜单项)。

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

    在可用性测试期间,我们注意到用户会选择一个顶级菜单项来显示子菜单,然后选择一个子菜单项,但不一定要单击子菜单项文本,而是单击子菜单项的背景色区域。由于某些菜单项的文本比其他菜单项长,因此文本较短的菜单项具有相当大的背景色区域。当用户单击BackColor区域,而不是直接单击MenuItem文本时,什么也不会发生,因为用户实际上没有单击子菜单项hit zone。

    我想让点击菜单项成功,即使用户没有点击菜单项的实际文本,而只是点击背景色区域。

    似乎应该在某个地方有一个属性来控制所显示菜单项的活动区域的宽度,但我没有看到它。如果我正在运行时创建这些菜单项,有什么建议吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   user369492    16 年前

    添加了css类: .MenuClickArea{宽度:100%;显示:block;} 并将该类指定给母版页aspx中相关菜单的DynamicMenuItemStyle和StaticMenuItemStyle

    推荐文章