字符串到System.Windows.Input.Key

时间:2011-06-05 21:09:25

标签: c#

我需要一个以String作为参数的函数,并返回一个System.Windows.Input.Key。 E.G:

var x = StringToKey("enter"); // Returns Key.Enter
var y = StringToKey("a"); // Returns Key.A

除了if / else或switch语句之外,有没有办法做到这一点?

3 个答案:

答案 0 :(得分:15)

查看KeyConverter,它可以将Key转换为string

KeyConverter k = new KeyConverter();
Key mykey = (Key)k.ConvertFromString("Enter");
if (mykey == Key.Enter)
{
    Text = "Enter Key Found";
}

答案 1 :(得分:9)

Key是一个枚举,所以你可以像任何枚举一样解析它:

string str = /* name of the key */;
Key key;
if(Enum.TryParse(str, true, out key))
{
    // use key
}
else
{
    // str is not a valid key
}

请记住,字符串必须完全匹配(好吧,几乎;它是一个不区分大小写的比较,因为true参数)枚举值的名称。

答案 2 :(得分:3)

var key = Enum.Parse(typeof(Key), "Enter");

不区分大小写的选项:

var key = Enum.Parse(typeof(Key), "enter", true);