Olá 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:
[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]
Pingback: Free: Curso Windows Phone – Vários tópicos | Blog do Eduardo H. Rizo
Pingback: [Desenvolvimento] Menu de contexto no Windows Phone - Windows Phone Brasil