我需要在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]);
.
.
.
答案 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();
}
}
}