我想在按下 Ctrl + space 时调用函数。我搜索得更多但找不到我想要的东西。
答案 0 :(得分:6)
您需要在TextBox上为KeyDown添加一个事件处理程序,如:KeyDown="TextBox_KeyDown"
。
然后在事件处理程序中:
if (e.Key == Key.Space && e.KeyboardDevice.Modifiers == ModifierKeys.Control)
{
//Do Stuff
}
答案 1 :(得分:2)
使用类似的东西:
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space &&
(Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
// Do what you need here
}
}
答案 2 :(得分:1)
这应该让你工作 -
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space && Keyboard.Modifiers == ModifierKeys.Control)
{
}
}
答案 3 :(得分:1)
如果你想要捕捉所有的关键,无论你是否有焦点,你只需要在你的课程中加入构造函数:
// To capture keyboard
EventManager.RegisterClassHandler(typeof(Window), Keyboard.KeyDownEvent, new System.Windows.Input.KeyEventHandler(keyDown), true);
并添加方法:(这是一个例子,它不适合你想要的东西)
private void keyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.Space)
{
code;
}
else if ((Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) && Keyboard.IsKeyDown(Key.T))
{
code;
}
}