后台代码如下
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
Console.WriteLine(key);
Console.WriteLine(key == Key.LeftAlt);
}
输出:
System
False
MatthiasG 的回答中解释到:
Alt 键是由系统处理的,只有系统通过
e.SystemKey
才知道是否按下了 Alt 键,属性键会返回Key. system
为了确保得到正确的 Key,修正如下:
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
输出:
LeftAlt
True