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

时间:2010-09-29 22:05:12

标签: c# .net wpf

我的目标是允许我的应用程序的用户通过按键盘上的CTRL + F11来调出我正在调用我的调试控制台。

简单地说,我需要调用一个ToggleDebug();方法,它将启用我的调试跟踪代码并显示窗口。我希望我的应用程序可以在按下CTRL + F11的任何时候执行此操作,无论用户当前在哪里聚焦光标,只要我的应用程序是当前聚焦的窗口。

我的应用程序是通过Click Once部署的 - 所以它是部分信任类型的环境。

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

1 个答案:

答案 0 :(得分:3)

您可以处理窗口的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))
    { 

    }
}