Clique e receba as novidades quentinhas no Telegram

backgroundWP

Olá pessoal, tudo bom?

Esse post foi escrito em resposta a uma pergunta feita através do blog, ou seja, foi questionado como obter via C# o tema atual que o usuário está utilizando no Windows Phone (Escuro ou Claro).

A resposta está logo abaixo:

1º passo: Adicione o trecho de código abaixo no arquivo App.xaml.cs de sua aplicação

Com esse código criamos uma propriedade pública expões o tema atual do telefone e poderá ser acessada a partir de quaisquer páginas da APP

...
public enum AppTheme
{
  Dark = 0,
  Light = 1
}

private static Color lightThemeBackground = Color.FromArgb(255, 255, 255, 255);
private static Color darkThemeBackgroud = Color.FromArgb(255, 0, 0, 0);
private static SolidColorBrush backgroundBrush;

internal static AppTheme CurrentTheme
{
  get
  {
    if (backgroundBrush == null)
    backgroundBrush = Application.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush;

    if (backgroundBrush.Color == darkThemeBackgroud)
      return AppTheme.Dark;
    if (backgroundBrush.Color == lightThemeBackground)
      return AppTheme.Light;

    return AppTheme.Dark;
  }
}
...

2º passo: Perguntar qual é o tema do telefone a partir de quaisquer páginas da APP

Veja o trecho de código adicionado, como exemplo, no construtor da classe Main.xaml.cs

...
public partial class MainPage : PhoneApplicationPage
{
  // Constructor
  public MainPage()
  {
    InitializeComponent();

    //Verificando qual o tema atual do telefone...
    if (App.CurrentTheme == App.AppTheme.Dark)
      MessageBox.Show("Tema escuro...");
    else
      MessageBox.Show("Tema claro...");
  }
}
...

Simples, não ?!

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

Fonte: Blog do Eduardo H. Rizo