no la página XAML C# WEB es una ventanaCómo forzar LostFocus cuando se hace clic en el botón
Con el clic de un botón I:
- Necesita para atrapar el nombre del último control
OnFocus
- Forzar el evento
LostFocus
del control.
no la página XAML C# WEB es una ventanaCómo forzar LostFocus cuando se hace clic en el botón
Con el clic de un botón I:
OnFocus
LostFocus
del control.// 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).
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
.
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 –
¡me alegro de que reduzcamos estos problemas !. – ramnz