Woher weiß ich, was das Thema in den Einstellungen (hell oder dunkel) ausgewählt ist? Ich möchte eine bedingte Anweisung verwenden, wieThema in Windows-Telefon (hell oder dunkel) mit C#
if (darkTheme) {..}
else {..}
Woher weiß ich, was das Thema in den Einstellungen (hell oder dunkel) ausgewählt ist? Ich möchte eine bedingte Anweisung verwenden, wieThema in Windows-Telefon (hell oder dunkel) mit 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: Installieren Thememanager von Jeff Wilcox und wechseln zwischen hellen und dunklen Thema in Ihrer Anwendung mit nur einer Zeile Code!
Sie möchten Ihre Antwort im official MSDN page für Theme auf Windows Phone finden.
Im Teil "Bestimmung Theme Hintergrund", die angeben:
// 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";
}
Auch in dieser Seite können Sie einen Teil auf dem "Thema Akzentfarbe" haben. Um die zwei vom Benutzer definierten Hauptfarben wiederherzustellen (Hintergrund und Akzentfarbe).
Ich finde die einfachste Ansatz das Thema zu bestimmen, zu verwenden ist:
public bool darkTheme = ((Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] == Visibility.Visible);
ist darkTheme wahr ist, für Licht das gewählte Thema ist dunkel, und falsche dann.
Dann in welchem Verfahren verwendet, nur eine einfache if
Aussage wie:
if (darkTheme == true)
{
//Do some stuff related to dark theme
}
else
{
//Do some stuff related to light theme
}
warum nicht nur tun, wenn (DarkTheme)? –
Yeah du könntest, entweder funktioniert. – Newbie
Stimmt, entweder arbeiten, aber man ist die Art, wie Profis es tun und die andere ist die Art, wie Newbies es tun lol. –
@YaroslavShabanov, wenn dies Ihre Frage bitte Häkchen beantwortet. –