[Desenvolvimento] Como habilitar ou desabilitar as opções da ApplicationBar das APPs do Windows Phone

4

Olá, tudo bom?

No Windows Phone, as opções de menu localizadas na parte inferior da tela do dispositivo são inseridas no arquivo .XAML sob uma área denominada ApplicationBar e nela, podem ser criados como ApplicationBarIconButton ou como ApplicationBarMenuItem, para entendimento, observe o trecho de código e a figura abaixo:

...
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" >
<shell:ApplicationBarIconButton IconUri="/Imagens/appbar.back.rest.png" Text="Voltar" Click="ApplicationBarIconButtonVoltar_Click" />
<shell:ApplicationBarIconButton IconUri="/Imagens/appbar.save.rest.png" Text="Gravar" Click="ApplicationBarIconButtonGravar_Click" />
<shell:ApplicationBarIconButton IconUri="/Imagens/appbar.folder.rest.png" Text="Arquivo" Click="ApplicationBarIconButtonArquivo_Click" />
<shell:ApplicationBarIconButton IconUri="/Imagens/appbar.questionmark.rest.png" Text="Exemplos" Click="ApplicationBarIconButtonExample_Click" />
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="Excluir registro" Click="ApplicationBarMenuItem_Click" />
<shell:ApplicationBarMenuItem Text="Enviar por e-mail" Click="ApplicationBarMenuItem_Click_1"/>
<shell:ApplicationBarMenuItem Text="Enviar por SMS" Click="ApplicationBarMenuItem_Click_2" />
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
...

Windows Phone ApplicationBar

No exemplo, o quadro em amarelo representa toda a área da ApplicationBar, sendo que o quadro vermelho representa os ícones da ApplicationBarIconButton e a parte em verde representa os itens da ApplicationBarMenuItem.

Não é obrigatório que você utilize itens para a ApplicationBarIconButton e também para a ApplicationBarMenuItem, ou seja, você pode escolher um ou outro dependendo de sua necessidade para a aplicação.

Como habilitar ou desabilitar as opções via C# (code behind)?

O trecho de código abaixo demonstra como habilitar ou desabilitar esses recursos a partir do código em C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private void HabilitarBotaoGravar()
{
   //Nesse caso estamos habilitando o 2º ícone da ApplicationBarIconButton
   ApplicationBarIconButton iconGravar = (ApplicationBarIconButton)ApplicationBar.Buttons[1];
   iconGravar.IsEnabled = true;
}
 
private void DesabilitarBotaoGravar()
{
   //Nesse caso estamos desabilitando o 2º ícone da ApplicationBarIconButton
   ApplicationBarIconButton iconGravar = (ApplicationBarIconButton)ApplicationBar.Buttons[1];
   iconGravar.IsEnabled = false;
}
 
private void HabilitarBotaoExcluir()
{
   //Nesse caso estamos habilitando a 1ª opção da ApplicationBarMenuItem
   ApplicationBarMenuItem iconExcluir = (ApplicationBarMenuItem)ApplicationBar.MenuItems[0];
   iconExcluir.IsEnabled = true;
}
 
private void DesabilitarBotaoExcluir()
{
   //Nesse caso estamos desabilitando a 1ª opção da ApplicationBarMenuItem
   ApplicationBarMenuItem iconExcluir = (ApplicationBarMenuItem)ApplicationBar.MenuItems[0];
   iconExcluir.IsEnabled = false;
}

Bem, é isso!
Espero que aproveitem a dica acima para melhorar ainda mais suas aplicações para Windows Phone.

Grande abraço,
Eduardo Henrique Rizo (@eduardorizo)

Fonte: Blog do Eduardo H. Rizo

Share.

About Author

Bacharel em Ciência da Computação pela FIPP/Unoeste, Pós-Graduado em Desenvolvimento de Sistemas Web, Segurança da Informação e Avaliação do Ensino e da Aprendizagem, Professor universitário e responsável pelo setor de desenvolvimento de sistemas web da Universidade do Oeste Paulista. MCP e MCPS pela Microsoft e nas horas vagas dedica um pouco do seu tempo escrevendo posts técnicos sobre desenvolvimento de sistemas web, windows phone, gerenciamento de servidores e outros assuntos para a comunidade.

  • Franklin

    Pessoal, queria tirar uma dúvida com vcs.

    Tem como reinstalar ou desatualizar e atualizar de novo a câmera? A minha não está funcionando (fica preto e não aparece nada) e to sem tempo de ir na NokiaCare e num posso ficar dias sem o cel. é um Lumia 800.

  • AlbertoMonteiro

    Poderia ser melhor se a barrinha nativa fosse bindable.
    Outro ponto chato dessa barra é que ela não troca o foco do componente e consequentemente não é executado o change do componente

    • realmente não é possível fazer bind dentro da appbar nativamente, mas encontrei uma biblioteca muito interessante no codeplex que possibilita fazer bind dentro da appbar, segue o link http://appbarutils.codeplex.com/

      • AlbertoMonteiro

        Legal d+Fábio, valeu vou testar esse carinha 😀