Partilhar via


Visão Geral do Controle de Menu

O controle Menu do ASP.NET permite que você desenvolva ambos os menus, exibidos de forma estática e de forma dinâmica, para suas páginas Web do ASP.NET.

Esse tópico contém:

  • Segundo plano

  • Exemplos de código

  • Referência de Classe

Segundo plano

The Menu controle tem dois modos de exibição: estático e dinâmico.Exibição estática significa que o controle Menu está totalmente expandido o tempo todo.A estrutura inteira está visível, e um usuário pode clicar em qualquer parte.Em um menu exibido dinamicamente, somente as partes que você especifica são estáticas, enquanto os seus itens de menu filhos são exibidos quando o usuário mantém o ponteiro do mouse sobre o nó pai.

Você pode configurar o conteúdo do controle Menu diretamente no controle, ou você pode especificar o conteúdo, vinculando o controle a uma fonte de dados.Sem escrever nenhum código, você pode controlar a aparência, a orientação e o conteúdo de um controle Menu do ASP.NET.Além das propriedades visuais expostas pelo controle, o controle suporta capas de controle do ASP.NET e temas.Para obter mais informações sobre capas e temas, consulte Visão Geral de Temas e Aparências ASP.NET.

Comportamento de Exibição Estática

Você pode controlar o comportamento de exibição estática, usando a propriedade StaticDisplayLevels do controle Menu.A propriedade StaticDisplayLevels indica quantos níveis a serem exibidos estaticamente da raiz do menu.Por exemplo, se StaticDisplayLevels estiver definida como 3, o seu menu será expandido para exibir seus primeiros três níveis estaticamente.O nível mínimo de exibição estática é 1, e o controle irá lançar uma exceção se o valor for definido para 0 ou para um número negativo.

Comportamento de exibição dinâmica

A propriedade MaximumDynamicDisplayLevels especifica quantos níveis de nós de menu que aparecem dinamicamente devem ser exibidos após o nível de exibição estática.Por exemplo, se o seu menu possui um nível estático de 3 e um nível dinâmico de 2, os primeiros três níveis do seu menu seriam estaticamente exibidos, enquanto os próximos dois níveis seriam dinâmicos.

Se MaximumDynamicDisplayLevels estiver definida como 0, nenhum nó do menu será exibido dinamicamente.Se MaximumDynamicDisplayLevels estiver definida como um número negativo, uma exceção será lançada.

Definindo Conteúdo de Menu

Você pode definir o conteúdo para o Menu controle de duas maneiras: adicionando individuais MenuItem objetos (declarativamente ou através de programação) e pelos dados vinculando o controle a uma fonte de dados XML.

Adicionando Itens de Menu Manualmente

Você pode adicionar itens de menu individuais ao controle, especificando-os na propriedade Items.A propriedade Items é uma coleção de objetos MenuItem.O exemplo a seguir mostra a marcação declarativa para um controle Menu com três itens, cada um deles possui dois itens filhos:

<asp:Menu ID="Menu1"  StaticDisplayLevels="3">
  <Items>
    <asp:MenuItem Text="File" Value="File">
      <asp:MenuItem Text="New" Value="New"></asp:MenuItem>
      <asp:MenuItem Text="Open" Value="Open"></asp:MenuItem>
    </asp:MenuItem>
    <asp:MenuItem Text="Edit" Value="Edit">
      <asp:MenuItem Text="Copy" Value="Copy"></asp:MenuItem>
      <asp:MenuItem Text="Paste" Value="Paste"></asp:MenuItem>
    </asp:MenuItem>
    <asp:MenuItem Text="View" Value="View">
      <asp:MenuItem Text="Normal" Value="Normal"></asp:MenuItem>
      <asp:MenuItem Text="Preview" Value="Preview"></asp:MenuItem>
    </asp:MenuItem>
  </Items>
</asp:Menu>

Associando Dados a uma Fonte de Dados XML

Associar a um arquivo XML permite que você controle o conteúdo do menu por edições do arquivo, em vez de usar o designer.Isso permite que você atualize o aspecto de navegação do seu site sem revisitar o controle Menu ou editar nenhum código.Se você possuir um site com conteúdo que muda, um arquivo XML pode ser usado para organizar o conteúdo e alimentado para o controle Menu para certificar-se de que o conteúdo é acessível aos usuários do Web site.

Aparência e Comportamento

Você pode ajustar o comportamento do controle Menu através das suas propriedades.Além disso, você pode controlar o comportamento da exibição dinâmica, incluindo a quantidade de tempo que um nó do menu permanece visível quando ele é exibido.Por exemplo, para alterar a orientação Menu de horizontal para vertical, você pode definir a propriedade Orientation da seguinte maneira:

[Visual Basic]

Menu.Orientation = Orientation.Vertical

[C#]

Menu.Orientation = Orientation.Vertical;

Definir a propriedade como Orientation.Horizontal altera a orientação de volta para horizontal.

Você pode definir propriedades individuais do controle Menu para especificar o tamanho, a cor, a fonte e outras características da sua aparência.Além disso, você pode aplicar temas e capas para o controle Menu.

Style

Cada nível do menu suporta propriedades de estilo.Se nenhuma propriedade de estilo dinâmica estiver definida, as propriedades de estilo estáticas serão usadas.Se as propriedades de estilo dinâmicas estiverem definidas e nenhuma propriedade de estilo estática estiver definida, o processamento padrão das propriedades de estilo estáticas será usado.A hierarquia de estilo do controle Menu é a seguinte:

  1. Controle

  2. SubMenuStyles

  3. MenuItemStyles

  4. SelectedItemStyles

  5. HoverMenuItemStyles

Esses estilos são mesclados entre menus dinâmicos e estáticos usando a seguinte lógica:

  • Cada estilo individual é aplicado para a ação apropriada ou tipo de item apropriado.

  • Todos os estilos são mesclados para o estilo anterior a eles na hierarquia, com o último estilo substituindo.

    Observação:

    Menus estáticos nunca mesclam e o estilo dinâmico é aplicado se um estilo estático não estiver definido.

Intervalo de Aparência Dinâmica

Um aspecto de um menu dinâmico é a quantidade de tempo que ele leva para que a parte que aparece dinamicamente de um menu desapareça.Esse valor é configurável em milissegundos, ajustando a propriedade DisappearAfter da seguinte maneira:

[Visual Basic]

Menu.DisappearAfter = 1000

[C#]

Menu.DisappearAfter = 1000;

O valor padrão é 500 milissegundos.Se o valor de DisappearAfter é definido como 0, pausar fora do controle Menu faz com que ela desapareça imediatamente.Definir o valor como -1 indica que o tempo de pausa deve ser infinito, e apenas clicando fora do controle Menu é que a parte dinâmica irá desaparecer.

Usando o Controle do Menu com Controles UpdatePanel

UpdatePanel controls are used to update selected regions of a page instead of updating the whole page with a postback.O controle Menu pode ser usado dentro de um controle UpdatePanel com a restrição que estilos devam ser aplicados usando uma referência a uma classe de Folha de Estilos em Cascata (CSS).For example, instead of setting the DynamicHoverStyle property by using a property-subproperty attribute, set the style by using the property-CssClass attribute.Da mesma forma, quando você usa o modelo DynamicHoverStyle para definir um estilo, use o atributo CssClass do modelo.

For more information about using UpdatePanel controls, see Visão geral sobre controle UpdatePanel and Visão geral de renderização de página parcial.

Exemplos de código

Usando CSS e Estilos com o Menu Controle

Usando Imagens com o Controle de Menu

Explicação passo a passo: Exibindo um menu em páginas da Web

Demonstra Passo a passo: Controlando menus do ASP.NET por programação

Voltar ao topo

Referência de Classe

A tabela seguinte lista as classes que estão relacionadas ao controle Menu.

Membro

Descrição

Menu

A classe principal para o controle.

MenuEventArgs

Fornece dados para os eventos MenuItemClick e MenuItemDataBound de um controle Menu.

MenuEventHandler

Representa o método que manipula o evento MenuItemClick ou o evento MenuItemDataBound de um controle Menu.

MenuItem

Representa um item de menu exibido no controle Menu.

MenuItemBinding

Define a relação entre um item de dados e o item de menu ao qual ele está vinculando em um controle Menu.

MenuItemBindingCollection

Representa uma coleção de objetos MenuItemBinding.

MenuItemCollection

Representa uma coleção de itens de menu em um controle Menu.

MenuItemStyle

Representa o estilo de um item de menu em um controle Menu.

MenuItemStyleCollection

Representa uma coleção de objetos MenuItemStyle em um controle Menu.

Voltar ao topo

Consulte também

Conceitos

Visão geral sobre navegação em sites do ASP.NET

Referência

Menu

Outros recursos

Controles Navigation da Toolbox