Keyboard 如何在XNA中将字符转换为键值

Keyboard 如何在XNA中将字符转换为键值,keyboard,xna,Keyboard,Xna,我正在尝试将应用程序配置文件中指定的字符转换为XNA键盘键。如何将字符值解析为键?这应该可以: char c = 'a'; Keys cAsKey = (Keys)((int)(char.ToUpper(c))); bool compareKeys = (cAsKey == Keys.A); //true 这应该起作用: char c = 'a'; Keys cAsKey = (Keys)((int)(cha

我正在尝试将应用程序配置文件中指定的字符转换为XNA键盘键。如何将字符值解析为键?

这应该可以:

        char c = 'a';

        Keys cAsKey = (Keys)((int)(char.ToUpper(c)));

        bool compareKeys = (cAsKey == Keys.A); //true
这应该起作用:

        char c = 'a';

        Keys cAsKey = (Keys)((int)(char.ToUpper(c)));

        bool compareKeys = (cAsKey == Keys.A); //true

虽然harryovers已经为您的问题提供了一个确切的答案,但对于配置文件来说,更好的解决方案可能是从字符串转换而不是从字符转换。这样,您的配置文件可以按名称指定任何键,而不仅仅是字母数字键


您可以使用Enum.Parse将字符串转换为枚举。

虽然harryovers已经为您的问题给出了确切的答案,但配置文件的更好解决方案可能是从字符串转换而不是从字符。这样,您的配置文件可以按名称指定任何键,而不仅仅是字母数字键


您可以使用Enum.Parse将字符串转换为枚举。

如果您的目标是Windows,请查看System.Windows.Forms中的KeyConverter类。从技术上讲,XNA密钥!=Windows窗体键,但在内部它们使用相同的整数值。

如果您的目标是Windows,请查看System.Windows.Forms中的KeyConverter类。从技术上讲,XNA密钥!=Windows窗体键,但在内部它们使用相同的整数值。

例如,如果字符是符号,这将导致问题。这是一个很好的解决方案,但我不想硬编码任何内容。我当前正在读取app.config文件中的键值,因此无法将字符与键值进行比较。例如,如果字符是符号,这将导致问题。这是一个很好的解决方案,但我不想硬编码任何内容。我当前正在读取app.config文件中的键值,因此无法将字符与键值进行比较。我最终使用了Enum.Parse。在我发布这个问题后不久我就明白了。公钥InKey{get{return KeysEnum.ParsetypeofKeys,_InKey.ToString;}我最终使用了Enum.Parse。在我发布这个问题后不久,我就明白了。公钥InKey{get{return KeysEnum.ParsetypeofKeys,_InKey.ToString;}