Come faccio a sapere qual è il tema selezionato nelle impostazioni (chiaro o scuro)? voglio usare un'istruzione condizionale comein Windows Phone (chiaro o scuro) utilizzando C#
if (darkTheme) {..}
else {..}
Come faccio a sapere qual è il tema selezionato nelle impostazioni (chiaro o scuro)? voglio usare un'istruzione condizionale comein Windows Phone (chiaro o scuro) utilizzando C#
if (darkTheme) {..}
else {..}
if((Visibility)App.Current.Resources["PhoneDarkThemeVisibility"])
...
else
...
// Detecting the current theme.
private static Color lightThemeBackground = Color.FromArgb(255, 255, 255, 255);
private static Color darkThemeBackground = Color.FromArgb(255, 0, 0, 0);
rivate static SolidColorBrush backgroundBrush;
internal static AppTheme CurrentTheme
{
get
{
if (backgroundBrush == null)
backgroundBrush = Application.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush;
if (backgroundBrush.Color == lightThemeBackground)
return AppTheme.Light;
else if (backgroundBrush.Color == darkThemeBackground)
return AppTheme.Dark;
return AppTheme.Dark;
}
}
BONUS: Installare ThemeManager da Jeff Wilcox e passare tra luce e tema scuro nella tua app con una sola riga di codice!
si desidera trovare la risposta nella official MSDN page per Theme su Windows Phone.
Nella parte "Determinazione sfondo a tema" che indicano:
// Determine the visibility of the dark background.
Visibility darkBackgroundVisibility =
(Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"];
// Write the theme background value.
if (darkBackgroundVisibility == Visibility.Visible)
{
textBlock1.Text = "background = dark";
}
else
{
textBlock1.Text = "background = light";
}
Inoltre, in questa pagina, hai una parte sul "colore accento tema". Per recuperare i due colori principali definiti dall'utente (sfondo e colore accento).
Trovo l'approccio più semplice per determinare il tema è quello di utilizzare:
public bool darkTheme = ((Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] == Visibility.Visible);
è darkTheme è vero allora il tema selezionato è buio, e falso per la luce.
Poi in qualsiasi procedimento basta usare un semplice if
dichiarazione, come ad esempio:
if (darkTheme == true)
{
//Do some stuff related to dark theme
}
else
{
//Do some stuff related to light theme
}
perché non farlo solo se (darkTheme)? –
Sì, si potrebbe, o funziona. – Newbie
Vero, o funziona, ma uno è il modo in cui i professionisti lo fanno e l'altro è il modo in cui Newbies lo fa lol. –
@YaroslavShabanov se questo risposto alla tua domanda si prega di segno di spunta. –