Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF KeyEventArgs第二个参数为null_Wpf_Keyboard_Keyeventargs - Fatal编程技术网

WPF KeyEventArgs第二个参数为null

WPF KeyEventArgs第二个参数为null,wpf,keyboard,keyeventargs,Wpf,Keyboard,Keyeventargs,Keyboard.PrimaryDevice.ActiveSource为空,程序停止工作。我也试过: KeyEventArgs e = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, keyData); 但仍然为null,我不能将mw替换为这个,因为代码位于不同的文件类中 我正在尝试从其他窗口捕获键盘,只有当我使用程序的当前活动窗口捕获键盘时,代码才起作用 有什么想法吗?它是空的,

Keyboard.PrimaryDevice.ActiveSource为空,程序停止工作。我也试过:

KeyEventArgs e = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, keyData);
但仍然为null,我不能将mw替换为这个,因为代码位于不同的文件类中

我正在尝试从其他窗口捕获键盘,只有当我使用程序的当前活动窗口捕获键盘时,代码才起作用


有什么想法吗?

它是空的,因为您的应用程序没有焦点。可以创建虚拟对象,如下所示:

MainWindow mw = new MainWindow();
System.Windows.PresentationSource source = System.Windows.PresentationSource.FromVisual(mw);
KeyEventArgs e = new KeyEventArgs(Keyboard.PrimaryDevice, source, 0, keyData);

您不需要处理HwndSource吗?
KeyEventArgs kea = new KeyEventArgs(Keyboard.PrimaryDevice, new HwndSource(0, 0, 0, 0, 0, "", IntPtr.Zero), 0, key);