如何在我的代码中告诉手机上的“主题”(即亮或暗)?
更新
好的,经过多一点研究后,我找到了一些似乎能满足我需要的东西。但是,也许有更好的方法?
思想?
以下是我发现现在回答我的问题:
var backColor = Resources["PhoneBackgroundColor"];
答案 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
}
}