C# 如何使用XNA获得Windows Phone 7主题颜色

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

我一直在尝试使用上提供的指南,但我找不到应用程序名,似乎也找不到SolidColorBrush的替代品

不幸的是,网络上没有库或易于使用的代码可以在windows phone上通过编程获得XNA中的瓷砖颜色,尽管Silverlight很简单


你知道怎么做吗?

你可以从参考资料中获得当前主题,例如获得如下背景色。在一个应用程序中,你可以在应用程序启动和应用程序激活中检查这一点,以查看在应用程序处于后台时主题是否更改

我很确定你可以在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
    }
}