2010-11-21 4 views
6

自分のコードで、電話機のテーマ(ライトまたはダーク)をどのように伝えることができますか?Windows Phone 7背景テーマ設定 - アプリケーション開発

UPDATE:

OK、もう少し研究を行った後、私は私が必要なものを行うに見える何かを見つけることができました。しかし、おそらくもっと良い方法がありますか?

思考?ここで

が、私はそれが今の私の質問に答えたものです:

var backColor = Resources["PhoneBackgroundColor"]; 
+0

は、RGBの作品が、新しい「PhoneLightThemeVisibilityを」値のチェックリソースが優先されます - 私の答えを見てください。 – mikeesouth

+0

http://www.kirupa.com/windowsphone/detecting_the_theme.htm –

+0

ここにあるテーマクラスを試してみてください。https://github.com/ZombieHunter/WP7-Theme – CodeZombie

答えて

9

初期のベータリリースでは、ここで他の人が指摘したようにPhoneBackgroundColorのRGB値をチェックする方法がありました。しかし、これは変更されました。
今、これを行うための好ましい方法は、(チェックRGB値がまだ動作していても)のような「PhoneLightThemeVisibility」の可視性をチェックしている:

Visibility v = (Visibility)Resources["PhoneLightThemeVisibility"]; 
if (v == System.Windows.Visibility.Visible) 
{ 
    // Light theme 
} 
else 
{ 
    // Dark theme 
} 

HTH

+0

+1これは良い方法です。 – keyboardP

3

瞬間、PhoneBackgroundColorの値をチェックするテーマを検出する認められた方法であると思われます。値はthis postの次のコードで確認できます。

private Color lightThemeBackground = Color.FromArgb(255, 255, 255, 255); 
private Color darkThemeBackground = Color.FromArgb(255, 0, 0, 0); 




private void DisplayState() 
{ 

SolidColorBrush backgroundBrush = Application.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush; 

if (backgroundBrush.Color == lightThemeBackground) 
{ 

// you are in the light theme 

} 
else 
{ 

// you are in the dark theme 

} 

} 
+0

RGB値の確認は機能しますが、新しい「PhoneLightThemeVisibility」リソース私の答えを見てください。 – mikeesouth

関連する問題