C# 如何使用XNA获得Windows Phone 7主题颜色
我一直在尝试使用上提供的指南,但我找不到应用程序名,似乎也找不到SolidColorBrush的替代品 不幸的是,网络上没有库或易于使用的代码可以在windows phone上通过编程获得XNA中的瓷砖颜色,尽管Silverlight很简单C# 如何使用XNA获得Windows Phone 7主题颜色,c#,xna,windows-phone-7.1,windows-phone-7,C#,Xna,Windows Phone 7.1,Windows Phone 7,我一直在尝试使用上提供的指南,但我找不到应用程序名,似乎也找不到SolidColorBrush的替代品 不幸的是,网络上没有库或易于使用的代码可以在windows phone上通过编程获得XNA中的瓷砖颜色,尽管Silverlight很简单 你知道怎么做吗?你可以从参考资料中获得当前主题,例如获得如下背景色。在一个应用程序中,你可以在应用程序启动和应用程序激活中检查这一点,以查看在应用程序处于后台时主题是否更改 我很确定你可以在XNA游戏中做类似的事情: public enum PhoneThe
你知道怎么做吗?你可以从参考资料中获得当前主题,例如获得如下背景色。在一个应用程序中,你可以在应用程序启动和应用程序激活中检查这一点,以查看在应用程序处于后台时主题是否更改 我很确定你可以在XNA游戏中做类似的事情:
public enum PhoneTheme
{
Light,
Dark
};
公共静态PhoneTheme CurrentTheme{get;private set;}
激活/启动代码中包含以下内容:
string theme = Resources["PhoneBackgroundColor"].ToString();
CurrentTheme = theme == "#FF000000"
? PhoneTheme.Dark
: PhoneTheme.Light;
您可以通过较短的方式在手机上获取主题(暗/光)(XNA也适用):
要获得AccentColor,您需要一个但更多的代码(我从MSDN:上的这篇文章中获得)。为了可读性,我缩短了switch语句中的代码,并将其放在一个方法中。我还在XNA应用程序中测试了这一点,效果很好!:)
您可以返回“真实”颜色,而不是返回包含“Red”的字符串。为此,您必须更改方法的返回类型和值
希望这有帮助 错误2名称“应用程序”在当前上下文中不存在错误1名称空间“System.Windows.Media”中不存在类型或名称空间名称“Color”。“奇怪的错误:(请确保您在项目中有对“System.Windows.dll”的引用。仍然获取不存在的应用程序:(颜色已修复:)您是否也有用于引用的using语句?例如:using System.Windows;我现在有,但现在我在“PhoneAccentColor”上得到一个无效的强制转换异常(错误1“资源”名称在当前上下文中不存在)
Visibility darkBackgroundVisibility = (Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"];
if(darkBackgroundVisibility == Visibility.Visible)
//Theme is Dark
else
//Theme is Light
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
}
}