你可以在手機上的主題(暗/燈光),在更短的方式(對XNA工程太):
Visibility darkBackgroundVisibility = (Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"];
if(darkBackgroundVisibility == Visibility.Visible)
//Theme is Dark
else
//Theme is Light
要獲得AccentColor,您需要更多代碼(我從MSDN上的這篇文章中獲得:How to: Apply Theme Resources for Windows Phone)。爲了便於閱讀,我縮短了switch-statement中的代碼並將其放入方法中。我也在一個XNA應用程序中測試了這個,並且這個工作正常! :)
var currentAccentColorHex = (System.Windows.Media.Color)Application.Current.Resources["PhoneAccentColor"];
string currentAccentColor = ColorNameFromHex(currentAccentColorHex);
private string ColorNameFromHex(System.Windows.Media.Color hexColor)
{
switch(hexColor.ToString())
{
case "#FF1BA1E2": return "Blue";
case "#FFA05000": return "Brown";
case "#FF339933": return "Green";
case "#FFE671B8": return "Pink";
case "#FFA200FF": return "Purple";
case "#FFE51400": return "Red";
case "#FF00ABA9": return "Teal";
case "#FF8CBF26":
case "#FFA2C139": return "Lime";
case "#FFFF0097":
case "#FFD80073": return "Magenta";
case "#FFF09609": return "Mango";
default: return "custom eleventh color"; //Manufacturer color
}
}
而不是返回一個字符串包含'紅',你可以返回一個'真正的'顏色。爲此,您必須更改方法的返回類型和值。
希望這會有所幫助!
錯誤「應用程序」並不在當前上下文中存在的名稱\t 錯誤類型或命名空間名稱「顏色'在命名空間中不存在'System.Windows.Media' 奇怪的錯誤:( – DanTonyBrown 2012-02-22 01:24:19
請確保您的項目中有對「System.Windows.dll」的引用 – Abbas 2012-02-22 08:30:16
仍然得到應用程序不存在:(顏色是固定但是:) – DanTonyBrown 2012-02-22 10:38:30