Windows Phone 7背景主题设置 - 应用程序开发

时间:2010-11-21 14:58:11

标签: windows-phone-7

如何在我的代码中告诉手机上的“主题”(即亮或暗)?

更新

好的,经过多一点研究后,我找到了一些似乎能满足我需要的东西。但是,也许有更好的方法?

思想?

以下是我发现现在回答我的问题:

var backColor = Resources["PhoneBackgroundColor"];

2 个答案:

答案 0 :(得分:9)

在早期测试版中,执行此操作的方法是检查PhoneBackgroundColor的RGB值,就像其他人在此指出的那样。但是这已经改变了 现在,执行此操作的首选方法是检查“PhoneLightThemeVisibility”的可见性(即使检查RGB值仍然有效):

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

HTH

答案 1 :(得分: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

}

}