2010-07-30 33 views

Respuesta

4

// PROBLEMA: al hacer clic en btns no fuerza LostFocus evento el último elemento de control introducido (última entrada de control podría ser texto, casilla de verificación u otros) añade el botón Guardar, donde llamando tal método se mueve el foco a los padres forzando a lostfocus en el último elemento.

private void btnSave_Click(object sender, RoutedEventArgs e) 
    { 
     AcceptLastFocusedElement(sender, e); 
    } 


    private void AcceptLastFocusedElement(object sender, RoutedEventArgs e) 
    { 
     FocusManager.SetFocusedElement(this, (Button)sender); 
    } 

NOTA: no es necesario para la tarea número 1 (obtener el nombre del elemento).

+0

Esto funciona ... pero no siempre. Tuve un caso donde la segunda vez que ejecutamos este código, no causa un foco perdido debido a FocusGroup. La solución en esta respuesta http://stackoverflow.com/a/4724766/197371 resolvió mi problema específico –

+0

¡me alegro de que reduzcamos estos problemas !. – ramnz

2

Puede hacer uso del método LayoutUpdated.

Por lo tanto, cada vez que ocurre un evento, entra en el evento LayoutUpdated y puede interceptar el LastFocusObject.

Cuestiones relacionadas