WPF - Criando Menus em tempo de execução


 Hoje veremos como criar menus em tempo de execução em uma aplicação WPF usando a linguagem VB .NET.

A WPF (Windows Presentantion Fundation)  é uma tecnologia que se propõe ser uma alternativa ao modelo Windows Forms, e, em se tratando de recursos a WPF vai além.

Quando você decide trabalhar com a WPF existem muitos conceitos básicos que você precisa conhecer para saber o que esta acontecendo por "trás dos panos".

Para criar aplicações WPF você pode usar qualquer versão do Visual Studio superior ao Visual Studio 2008 incluindo as versões Express e também o SharpDevelop a partir da versão 4.0. A linguagem usada pode ser o VB .NET como a linguagem C#.

De forma geral quando você começa a construir uma aplicação WPF você começa definindo a interface usando o editor XAML, mas nada impede que você inicie usando o código da linguagem escolhida, afinal, tudo o que você faz com o XAML você pode fazer também via Código.

Mas o que vem a ser XAML ?

XAML é uma linguagem de marcação baseada na linguagem XML para especificação e definição de características de classes.

XAML é utilizado principalmente para a especificação de aspectos estáticos e visual da interface do usuário através da definição propriedades de objetos da classe

  • Podemos produzir código XAML usando ferramentas de layout de interface do usuário, tais como o Expression Blend, mas podemos também definir código XAML à mão digitando diretamente as tags específicas e/ou arrastando e soltando os controles WPF a partir da ToolBox;
  • Ferramentas de layout de interface do usuário, tais como o Expression Blend são freqüentemente usados por designers gráficos ao invés de programadores;
  • A linguagem VB .NET (ou C #) é usada principalmente para especificar a maioria das partes ativas de um programa como o fluxo de controle e de manipuladores de mensagens;

Neste artigo vou mostrar como criar menus em tempo de execução via código VB .NET.

Recursos usados :

Criando a solução no VS 2013 Express Edition

Abra o VS 2013 Express for Windows desktop e clique em New Project;

A seguir selecione Visual Basic -> WPF Application;

Informe o nome Wpf_Menus e clique no botão OK;

No arquivo MainWindow.xaml do projeto vamos incluir um controle Button a partir da ToolBox e definir o código XAML conforme abaixo:

Código XAML
<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Menus" Height="350" Width="525">
    <Grid Background="LightGreen" Name="grdConteudo">
        <Button x:Name="btnCriarMenus" Content="Criar Menus" HorizontalAlignment="Left" Margin="210,120,0,0" VerticalAlignment="Top" Width="132" Height="47"/>
    </Grid>
</Window>

Agora no evento Click do controle Button - btnCriarMenus- inclua o código abaixo:

   Private Sub btnCriarMenus_Click(sender As Object, e As RoutedEventArgs) Handles btnCriarMenus.Click

        ' cria o menu prinicipal
        Dim menuPrincipal As New Menu()
        grdConteudo.Children.Add(menuPrincipal)
        menuPrincipal.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch
        menuPrincipal.VerticalAlignment = System.Windows.VerticalAlignment.Top
        ' Cria o menu Arquivo
        Dim arquivoMenuItem As New MenuItem()
        arquivoMenuItem.Header = "_Arquivo"
        menuPrincipal.Items.Add(arquivoMenuItem)
        ' Cria o item do menu Arquivo
        Dim abrirMenuItem As New MenuItem()
        arquivoMenuItem.Items.Add(abrirMenuItem)
        abrirMenuItem.Header = "_Abrir"
        AddHandler abrirMenuItem.Click, AddressOf abrirMenuItem_Click
        ' Inclui um tooltip ao item Abrir
        Dim abrirToolTip As New ToolTip()
        abrirMenuItem.ToolTip = abrirToolTip
        abrirToolTip.Content = "Abir Novo Arquivo"
        ' Cria o item Sair do menu Arquivo
        Dim sairMenuItem As New MenuItem()
        arquivoMenuItem.Items.Add(sairMenuItem)
        sairMenuItem.Header = "_Sair"
        AddHandler sairMenuItem.Click, AddressOf sairMenuItem_Click
        ' Inclui uma tooltip ao item Sair
        Dim sairToolTip As New ToolTip()
        sairMenuItem.ToolTip = sairToolTip
        sairToolTip.Content = "Encerrar o programa"
    End Sub

Agora vamos definir o código para tratar os eventos Click nos itens do menu. Para isso criamos as rotinas abrirMenuItem_Click e sairMenuItem_Click com o código a seguir:

 Private Sub abrirMenuItem_Click(sender As Object, e As RoutedEventArgs)
        MessageBox.Show("Abir um novo arquivo...")
 End Sub
 Private Sub sairMenuItem_Click(sender As Object, e As RoutedEventArgs)
      MessageBox.Show("Hasta la vista...!")
      Me.Close()
 End Sub

Agora executando o projeto teremos a janela exibida conforme a figura abaixo:

A seguir clicando no botão - Criar Menus - iremos obter o seguinte resultado:

Pegue o projeto completo aqui :  Wpf_Menus.zip

Eu sou a videira verdadeira, e meu Pai é o lavrador.
Toda a vara em mim, que não dá fruto, a tira; e limpa toda aquela que dá fruto, para que dê mais fruto.

João 15:1,2

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti