2012-09-18 31 views
5

Tengo un cuadro de texto en una página del teléfono de Windows y quiero mostrar el teclado tan pronto como se carga la página.¿Cómo puedo mostrar programáticamente un teclado para el cuadro de texto?

¿Hay alguna forma de hacer que este cuadro de texto ya esté enfocado cuando navego a esta página?

Consideré usar Guide.BeginShowKeyboardInput() pero no creo que sea una buena solución en Silverlight.

+1

¿Mostrar el foco después de cargar la página en su cuadro de texto muestra automáticamente el teclado? – Alexandre

Respuesta

8

Sí, no mostraría el teclado de forma manual. Puede ser una molestia para aquellos que tienen dispositivos con un teclado físico. En el evento de carga de la página, puede llamar al método de Enfoque en el cuadro de texto que desea seleccionar. El teclado debería mostrarse automáticamente según sea necesario.

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
{ 
      txtLongitude.Focus(); 
} 
6

Anule el método OnNavigatedTo para la página.

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    // Set focus to the TextBox, this will pop up the 
    // virtual keyboard 
    myTextBox.Focus(); 
} 
0

Se podría llamar textBox.Focus() a través de un Dispatcher si lo usa en la OnNavigatedTo evento:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    if (e.NavigationMode != NavigationMode.Back) 
    { 
     Dispatcher.InvokeAsync(() => ShowKeyboard()); 
    } 
} 

private void ShowKeyboard() 
{ 
    textBox.Focus(); 
} 

La declaración if aquí hace que el teclado sólo se muestra cuando la página no se navega a partir de la Botón de retroceso.

Cuestiones relacionadas