Получить текущий сфокусированный элемент / элемент управления в окне WPF


Как я могу получить текущий сфокусированный элемент / элемент управления в WPF из кода, который не является частью ни окна, ни пользовательского элемента управления?

1   51  

1 ответ:

это зависит от типа фокуса вы после,Logical или Keyboard.

фокус относится к элементу, который получает ввод с клавиатуры и логический фокус относится к элементу в области фокусировки, который имеет фокус.

FocusManager возвращает элемент с логическим фокусом в пределах указанной области фокуса, в этом случае окно (this):

IInputElement focusedControl = FocusManager.GetFocusedElement(this);

Keyboard вернет элемент с текущим вводом клавиатуры фокус:

IInputElement focusedControl =  Keyboard.FocusedElement;