2013-08-13 10 views

Odpowiedz

3
if((Visibility)App.Current.Resources["PhoneDarkThemeVisibility"]) 
... 
else 
... 
+0

@YaroslavShabanov jeśli ten odpowiedział na Twoje pytanie prosimy o zaznaczenie. –

0
// 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; 
     } 
    } 
6

Chcesz znaleźć odpowiedź w official MSDN page do tematu na Windows Phone.

W części „Określanie motywu tła”, które wskazują:

// 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"; 
} 

Również na tej stronie, masz część na „temat” akcent koloru. Aby odzyskać dwa główne kolory zdefiniowane przez użytkownika (kolor tła i akcentu).

1

znajdę najłatwiejsze podejście do określenia tematem jest użycie:

public bool darkTheme = ((Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] == Visibility.Visible); 

jest darkTheme jest prawdziwe wtedy wybrany motyw jest ciemny i false dla światła.

Następnie w cokolwiek procedura wystarczy użyć prostego if oświadczenie, takie jak:

if (darkTheme == true) 
{ 
    //Do some stuff related to dark theme 
} 

else 
{ 
    //Do some stuff related to light theme 
} 
+0

dlaczego nie po prostu zrobić, jeśli (darkTheme)? –

+0

Tak, możesz, albo działa. – Newbie

+0

To prawda, albo praca, ale jeden z nich to robią profesjonaliści, a drugi to sposób, w jaki nowicjusze to robią. –