4

在 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);从按钮单击事件调用,它工作正常。

加载页面时如何将焦点设置到文本框?

4

4 回答 4

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));
}
于 2013-02-06T15:49:42.180 回答
1

Try this:

myControl.Focus(Windows.UI.Xaml.FocusState.Keyboard);

and set this control(mycontrol) as the first control in your XAML code.

于 2013-12-30T04:43:13.777 回答
1

在 Windows Phone 8.1 上,将 Loaded 事件添加到页面并在那里调用焦点而不是 OnNavigatedTo 事件

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    SearchTextBox.Focus(FocusState.Keyboard);
}
于 2015-07-31T10:57:38.590 回答
0

我通过在 TextBox 的 Loaded 事件中添加它来做到这一点:

xml:

<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);
}
于 2016-07-15T15:32:33.837 回答