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

5

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

有没有办法让这个文本框在导航到该页面时已经聚焦?

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


1
在页面加载后将焦点放在文本框上,会自动显示键盘吗? - Alexandre
3个回答

8

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

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

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();
}

0
你可以在OnNavigatedTo事件中使用Dispatcher调用textBox.Focus()
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

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

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

这里的if语句确保只有在页面不是从“返回”按钮导航到时才显示键盘。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接