我在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();
}
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
语句确保只有在页面不是从“返回”按钮导航到时才显示键盘。