0

我需要向 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]);
         .
         .
         .
4

1 回答 1

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();
            }
        }
    }
于 2013-08-01T08:41:49.823 回答