我在 Windows Phone 页面上有一个文本框,我想在页面加载后立即显示键盘。
当我导航到这个页面时,有什么方法可以让这个文本框已经聚焦?
我考虑过使用Guide.BeginShowKeyboardInput()
,但我认为这在 silverlight 中不是一个好的解决方案。
我在 Windows Phone 页面上有一个文本框,我想在页面加载后立即显示键盘。
当我导航到这个页面时,有什么方法可以让这个文本框已经聚焦?
我考虑过使用Guide.BeginShowKeyboardInput()
,但我认为这在 silverlight 中不是一个好的解决方案。
是的,我不会手动显示键盘。对于那些拥有带有物理键盘的设备的人来说,这可能是一种烦恼。在页面的加载事件中,您只需在要选择的文本框上调用 Focus 方法。键盘应根据需要自动显示。
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
txtLongitude.Focus();
}
覆盖OnNavigatedTo
页面的方法。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
// Set focus to the TextBox, this will pop up the
// virtual keyboard
myTextBox.Focus();
}
如果您在事件中使用它,您可以textBox.Focus()
通过 a调用: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
语句确保仅在未从“后退”按钮导航到页面时才显示键盘。