Establecer el foco en el cuadro de texto en WPF

Cómo establecer el foco en un elemento TextBox en WPF

Tengo este código:

 txtCompanyID.Focusable = true; txtCompanyID.Focus(); 

…Pero no está funcionando.

¿Alguna idea?

En XAML:

    

prueba FocusManager.SetFocusedElement

 FocusManager.SetFocusedElement(parentElement, txtCompanyID) 

Nadie explicó hasta ahora por qué el código en la pregunta no funciona. Mi suposición es que el código fue colocado en el constructor de la ventana. Pero en este momento es demasiado pronto para establecer el foco. Tiene que hacerse una vez que la Ventana esté lista para la interacción. El mejor lugar para el código es el evento Loaded:

 public KonsoleWindow() { public TestWindow() { InitializeComponent(); Loaded += TestWindow_Loaded; } private void TestWindow_Loaded(object sender, RoutedEventArgs e) { txtCompanyID.Focus(); } } 
 txtCompanyID.Focusable = true; Keyboard.Focus(txtCompanyID); 

msdn:

Solo puede haber un elemento en todo el escritorio que tenga foco en el teclado. En WPF, el elemento que tiene el foco del teclado tendrá IsKeyboardFocused establecido en verdadero.

Podría romper después de la línea de configuración y verificar el valor de la propiedad IsKeyboardFocused . También verifique si realmente llega a esa línea o tal vez establece algún otro elemento para enfocarse después de eso.

Pruebe esto: MyTextBox.Focus ( );

Nada de esto funcionó para mí ya que estaba usando una grilla en lugar de un StackPanel.

Finalmente encontré este ejemplo: http://spin.atomicobject.com/2013/03/06/xaml-wpf-textbox-focus/

y lo modificó a esto:

En la sección ‘Recursos’:

   

En mi definición de cuadrícula: