2013-10-15 9 views

risposta

86

Dipende dal tipo di messa a fuoco che si sta cercando, Logical o Keyboard.

tastiera fuoco riferisce all'elemento che riceve input da tastiera e attivo logico riferisce all'elemento in un ambito fuoco che ha il focus.

FocusManager ottiene l'elemento attivo logico nell'ambito dell'attivazione specificata, in questo caso la finestra (this):

IInputElement focusedControl = FocusManager.GetFocusedElement(this); 

Keyboard tornerà l'elemento con la corrente di input focus tastiera:

IInputElement focusedControl = Keyboard.FocusedElement; 
+1

Grazie per il consiglio. Finisco per utilizzare la prima opzione con la combinazione di Application.Current.Windows [0] invece di 'this'. – Honzajscz

+2

Vedere [System.Windows.Input.Keyboard.FocusedElement] (https://msdn.microsoft.com/en-us/library/system.windows.input.keyboard.focusedelement.aspx) e [System.Windows.Input. FocusManager.GetFocusedElement()] (https://msdn.microsoft.com/en-us/library/ms604088.aspx) – Lu55

Problemi correlati