如何以编程方式显示文本框的键盘?

时间:2012-09-18 16:02:33

标签: c# silverlight windows-phone-7

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

当我导航到此页面时,有没有办法让这个文本框集中注意力?

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

3 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分: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();
}

答案 2 :(得分:0)

如果您在textBox.Focus()事件中使用Dispatcher,则可以通过OnNavigatedTo致电protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (e.NavigationMode != NavigationMode.Back) { Dispatcher.InvokeAsync(() => ShowKeyboard()); } } private void ShowKeyboard() { textBox.Focus(); }

if

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