Olá pessoal, tudo bom?
Todos sabemos que para o Windows Phone, o System Tray é aquela área do sistema dedicada a mostrar o horário, nível da bateria, sinal de rede wifi, sinal 3G, 4G, etc.
O que nem todos devem saber é que via C# podemos manipular o System Tray do Windows Phone e nele habilitar um indicador de progressão, trocar a cor do fundo e da fonte, ou mesmo retirá-lo para que tenhamos mais espaço disponível para o conteúdo de nossa APP.
Desse modo, resolvi escrever esse post para sanar a dúvida de um leitor e também para compartilhar a informação com todos. Vamos ao exemplo:
1) Em primeiro lugar, demonstro o código XAML para montar a interface da APP de exemplo:
... <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> <TextBlock Text="BLOG DO EDUARDO H. RIZO" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/> <TextBlock Text="system tray" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> </StackPanel> <!--ContentPanel - place additional content here--> <StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <Button Name="btnTrocarCor" Content="Trocar cor do system tray" Click="btnTrocarCor_Click" /> <CheckBox Name="ckbAtivarProgress" Content="Ativar o system tray progress indicator" Tap="ckbAtivarProgress_Tap" /> <CheckBox Name="ckbEsconderSystemTray" Content="Esconder o system tray" Tap="ckbEsconderSystemTray_Tap" /> </StackPanel> ...
2) Na sequencia, vamos à codificação C# para de fato manipularmos o System Tray:
... //Trocando a cor do System tray private void btnTrocarCor_Click(object sender, RoutedEventArgs e) { SystemTray.SetBackgroundColor(this, Colors.Blue); SystemTray.SetForegroundColor(this, Colors.White); } //Ativando o Progress Indicator private void ckbAtivarProgress_Tap(object sender, System.Windows.Input.GestureEventArgs e) { ProgressIndicator progress = new ProgressIndicator(); progress.Text = "Aguarde..."; progress.IsVisible = (bool)ckbAtivarProgress.IsChecked; progress.IsIndeterminate = (bool)ckbAtivarProgress.IsChecked; SystemTray.SetProgressIndicator(this, progress); } //Escondendo ou mostrando o System tray private void ckbEsconderSystemTray_Tap(object sender, System.Windows.Input.GestureEventArgs e) { SystemTray.IsVisible = !(bool)ckbEsconderSystemTray.IsChecked; } ...
Espero que essa informação o ajude a escrever APPs com mais recursos para o usuário.
Abraços,
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] Como trocar a cor, ativar o progress indicator e esconder o System Tray via C# - Peguei do