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
Comentários