2010-09-27 12 views

risposta

10

C'è una proprietà per verificare questa, piuttosto che il confronto la risorsa reale colore.

Visibility v = (Visibility)Resources["PhoneLightThemeVisibility"]; 

if (v == System.Windows.Visibility.Visible) 
{ 
    // Is light theme 
} 
else 
{ 
    // Is dark theme 
} 
+0

OK, immagino che funzioni. Ho condiviso le preoccupazioni degli altri sul thread collegato su cosa fare quando/se appaiono nuovi temi. Ma immagino che questo andrà bene per la prossima versione ... – will

+0

Preoccuparsi di cose che non sono ancora nemmeno dette (come altri temi) non è altrettanto produttivo. Un nuovo tema probabilmente causerà molti problemi a tutti coloro che creano un'app che utilizza il tema. Preoccuparti se e quando sarà annunciato. (Non penso che ci sarà - almeno non fino al WP8) –

0

Se avete intenzione di rilevare il tema nel codice, quindi ecco una soluzione -

var backColor = Resources["PhoneBackgroundColor"]; 
if (backColor.ToString() == "#FF000000") 
    // Dark theme selected => do something 
else 
    // Light theme selected => do something 

HTH, indyfromoz

+0

Questo andava bene prima, ma la RTM ha introdotto la risorsa 'PhoneLightThemeVisibility'. –

Problemi correlati