C# 在应用程序中的任意位置按下特定组合键时调用方法,只要应用程序当前处于焦点窗口

C# 在应用程序中的任意位置按下特定组合键时调用方法,只要应用程序当前处于焦点窗口,c#,.net,wpf,C#,.net,Wpf,我的目标是允许我的应用程序的用户通过按键盘上的CTRL+F11组合键来打开我所谓的调试控制台 简单地说,我需要调用一个ToggleDebug()

我的目标是允许我的应用程序的用户通过按键盘上的CTRL+F11组合键来打开我所谓的调试控制台

简单地说,我需要调用一个
ToggleDebug()
我的应用程序是通过单击一次部署的,因此它是一个部分信任类型的环境


在一个旧的VB6应用程序中,我使用了一个调用
DoEvents()
wend
循环和一个windows API调用。。。不用说,我希望现在有更好的方法。

您可以处理窗口的PreviewKeyDown事件

public MainWindow()
{
    InitializeComponent();
    this.PreviewKeyDown += new KeyEventHandler(MainWindow_PreviewKeyDown);
}

void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if ((e.Key == Key.F11) && (Keyboard.Modifiers == ModifierKeys.Control))
    { 

    }
}

为什么要推荐PreviewKeyDown和KeyDown?窗口上的PreviewKeyDown每次都会被点击。KeyDown没有。例如,如果窗口中的控件在内部处理KeyDown事件并将其e.Handled设置为True,则该事件将不会在窗口中引发。