5

我在 Windows Phone 页面上有一个文本框,我想在页面加载后立即显示键盘。

当我导航到这个页面时,有什么方法可以让这个文本框已经聚焦?

我考虑过使用Guide.BeginShowKeyboardInput(),但我认为这在 silverlight 中不是一个好的解决方案。

4

3 回答 3

8

是的,我不会手动显示键盘。对于那些拥有带有物理键盘的设备的人来说,这可能是一种烦恼。在页面的加载事件中,您只需在要选择的文本框上调用 Focus 方法。键盘应根据需要自动显示。

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
            txtLongitude.Focus();
}
于 2012-09-18T16:14:58.303 回答
6

覆盖OnNavigatedTo页面的方法。

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

  // Set focus to the TextBox, this will pop up the 
  // virtual keyboard
  myTextBox.Focus();
}
于 2012-09-18T16:12:44.960 回答
0

如果您在事件中使用它,您可以textBox.Focus()通过 a调用:DispatcherOnNavigatedTo

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

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

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

此处的if语句确保仅在未从“后退”按钮导航到页面时才显示键盘。

于 2014-06-07T20:12:02.930 回答