在Windows 8中,当导航页面时,我需要将焦点放在特定的TextBox上。
我用过:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
myControl.Focus(Windows.UI.Xaml.FocusState.Keyboard);
}
但它不起作用。但是,如果我从按钮点击事件中调用myControl.Focus(Windows.UI.Xaml.FocusState.Keyboard);
,它就可以正常工作。
如何在加载页面时将焦点设置为TextBox?
答案 0 :(得分:16)
尝试拨打myControl.Focus(Windows.UI.Xaml.FocusState.Keyboard);
与this.Dispatcher
代码示例:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
() => myControl.Focus(FocusState.Keyboard));
}
答案 1 :(得分:1)
试试这个:
myControl.Focus(Windows.UI.Xaml.FocusState.Keyboard);
并将此control(mycontrol)
设置为XAML代码中的第一个控件。
答案 2 :(得分:1)
在Windows Phone 8.1上向页面添加一个Loaded事件并在那里调用焦点而不是OnNavigatedTo事件
private void Page_Loaded(object sender, RoutedEventArgs e)
{
SearchTextBox.Focus(FocusState.Keyboard);
}
答案 3 :(得分:0)
我是通过在TextBox的Loaded事件中添加它来实现的:
XAML:
<TextBox x:Name="SearchTextBox"
Loaded="SearchTextBox_Loaded"/>
<。>在.cs:背后的代码中
private void SearchTextBox_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
SearchTextBox.Focus(Windows.UI.Xaml.FocusState.Keyboard);
}