Curso Windows Phone – Menu de Contexto

wp-context-menuOlá pessoal, tudo bom?

Este post é para responder uma dúvida que me foi enviada através do Blog. A dúvida diz respeito a como inserir menu de contexto (Context Menu) em APPs para Windows Phone.

A primeira coisa que temos que saber é que o serviço context menu faz parte da Toolkit do Windows Phone, portanto, será necessário adicioná-la ao seu projeto, sendo que para isso, faça o seguinte:

Abra seu projeto no Visual Studio, acesse o menu TOOLS -> Library Package Manager -> Package Manager Console

No console, digite Install-Package WPToolkit [ENTER] e aguarde o término da instalação

Após a instalação da Toolkit no seu projeto, precisamos entender que o menu de contexto deve ser inserido entre o objeto que irá chamá-lo, ou seja, se sua intenção é que o menu apareça após pressionar e segurar (hold) um botão, então os elementos do context menu deverão estar entre ele, se sua intenção é que ele “apareça” ao pressionar checkbox que faz parte de uma lista, então os elementos do context menu deverão estar entre esse checkbox e assim por diante…

Nesse exemplo, estou inserindo um menu de contexto em uma lista de carros (ver imagem no início do post) e a função do menu é questionar se o usuário deseja fazer com que o nome do carro fique todo em maiúsculo ou todo em minúsculo.

Definições para o arquivo XAML

Repare que estou colocando apenas um trecho do código, mas o que importa nesse exemplo é a forma como o menu de contexto está inserido dentro do checkbox

<phone:PhoneApplicationPage
...
  xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
...
...
<phone:PivotItem Header="check list">
  <StackPanel>
    <ListBox Name="lbCheck" Height="490">
      <ListBox.ItemTemplate>
        <DataTemplate>
          <StackPanel Orientation="Horizontal" Margin="5,0,0,0">
            <CheckBox Height="Auto" Content="{Binding Nome, Mode=TwoWay}"
                      IsChecked="{Binding IsSelected, Mode=TwoWay}" FontSize="30">
              //Definição do serviço do menu de contexto
              <toolkit:ContextMenuService.ContextMenu>
                <toolkit:ContextMenu Name="ctmMenu">
                  //Definição dos itens do menu de contexto
                  <toolkit:MenuItem Name="mitemCaixaAlta" Header="Caixa ALTA" Tap="mitemCaixaAlta_Tap"/>
                  <toolkit:MenuItem Name="mitemCaixaBaixa" Header="Caixa baixa" Tap="mitemCaixaBaixa_Tap"/>
                </toolkit:ContextMenu>
              </toolkit:ContextMenuService.ContextMenu>
            </CheckBox>
            <TextBlock Text="{Binding Cor, Mode=TwoWay}" VerticalAlignment="Center" FontSize="30"
                       Style="{StaticResource PhoneTextAccentStyle}" />
          </StackPanel>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
  </StackPanel>
</phone:PivotItem>
...

Definições para o arquivo em C#

Abaixo temos apenas as ações necessárias para os métodos que estão sendo chamados pelos itens do menu de contexto

...
private void mitemCaixaAlta_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
  MenuItem mi = sender as MenuItem;
  Carro c = mi.DataContext as Carro;
  c.Nome = c.Nome.ToUpper();
}

private void mitemCaixaBaixa_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
  MenuItem mi = sender as MenuItem;
  Carro c = mi.DataContext as Carro;
  c.Nome = c.Nome.ToLower();
}
...

Grande abraço !

Eduardo Henrique Rizo

Post Relacionado: 

Anúncios

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , , , , , , , , , , ,
Publicado em Windows Phone
2 comentários em “Curso Windows Phone – Menu de Contexto

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Erro: o Twitter não respondeu. Por favor, aguarde alguns minutos e atualize esta página.

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: