挂钩到多个wpf窗口的问题

时间:2013-08-01 08:21:19

标签: c# wpf pointers hook keyboard-shortcuts

我需要在wpf窗口中添加钩子,以便为我的应用程序创建键盘快捷键。 我尝试使用激活的事件激活Application类中的窗口指针。只有一个窗口时效果很好。 我们允许按F11打开另一个窗口。此窗口以全屏模式打开,只能通过按F11或ESC关闭。看起来我无法获得这个新窗口的正确指针,因为除了F11之外,所有键盘快捷键都不起作用。 获取指针的代码:

var windows = System.
Windows.Application. Current.Windows;
If (windows.Count < 1)
{
    return false;
}

else if (windows. Count ==1)
{
    winPointer = new WindowInteropHelper(windows[0]);
    return true;
}

else 
{
    for (int I = 0; I < windows. Count; I++)
    {
         if (windows [I].IsActive)
         winPointer =new WindowInteropHelper(windows[i]);
         .
         .
         .

1 个答案:

答案 0 :(得分:0)

我不确定我是否遗漏了某些东西,但是如果你打开一个新窗口,为什么你不能抓住那个窗口的密钥并按照那样处理呢?

    public partial class NewFullScreenWindow : Window
    {
        public NewFullScreenWindow()
        {
            InitializeComponent();
            KeyDown += HandleKeyDown;
        }

        private void HandleKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Escape || e.Key == Key.F11)
            {
                Close();
            }
        }
    }