在WPF窗口中获取当前的焦点元素/控件

我如何从代码中获取WPF中的当前焦点元素/控件,这些代码既不是窗口也不是用户控件的一部分?

这取决于你所关注的焦点types, LogicalKeyboard

键盘焦点是指接收键盘input的元素, 逻辑焦点是指焦点范围内的焦点范围内的元素。

FocusManager在指定的焦点范围内获取具有逻辑焦点的元素,在这种情况下是Window( this ):

 IInputElement focusedControl = FocusManager.GetFocusedElement(this); 

Keyboard将返回当前键盘input焦点的元素:

 IInputElement focusedControl = Keyboard.FocusedElement;