删除第一个文本框的焦点

时间:2013-08-08 08:14:38

标签: windows-8 textbox windows-store-apps

在我们的Windows应用商店应用中,我们有一个文本框,当应用程序启动时,此文本框始终会获得焦点。在桌面方案中没有问题,但在平板电脑设备上,此焦点将直接打开屏幕键盘,这不是我们想要的场景。

我们尝试使用.Focus(FocusState)方法将焦点设置在另一个控制程序上,但不知何故焦点被设置回文本框。我们都将焦点设置在LoadState或OnNavigatedTo方法中。

只有当我们有计时器时,我们才能将焦点设置成另一个控件。任何人都有想法如何将焦点设置为另一个控件,或者最好不设置焦点到控件?

3 个答案:

答案 0 :(得分:16)

通常,您可以按TextBox.Focus()设置任何元素的焦点。但是,当您将TextBox放在ScrollViewer或FlyOut中时,我发现了相同的行为(启动时自动对焦)。然后你必须在父元素上设置IsTabStop

<ScrollViewer IsTabStop="true">
   <TextBox />
</ScrollViewer>

答案 1 :(得分:0)

IsTabStop =“true”对我不起作用。我的解决方案是在将焦点设置在TextBox上之前调用scrollViewer的UpdateLayout():

scrollViewer.UpdateLayout();

textBox.Focus(Windows.UI.Xaml.FocusState.Programmatic);

答案 2 :(得分:0)

如果你不喜欢ScrollViewer的接受答案,你也可以这样做以消除焦点:

_textBox.IsReadOnly = true;
_textBox.IsReadOnly = false;