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