【发布时间】:2018-08-21 20:13:11
【问题描述】:
这应该很简单:我有一个带有文本框的 ContentDialog。当应用程序在平板电脑上运行并启动对话框时,我希望选择 TextBox 中的文本并自动显示屏幕(虚拟)键盘。当然,用户必须在 TextBox 内点击的默认行为会导致键盘显示,但这对用户来说是一个额外的步骤(并且文本选择会丢失)。
XAML:
<ContentDialog ... >
<Grid>
<TextBox Name="TbInput" Text="AAA" />
</Grid>
</ContentDialog>
代码隐藏:
public MyDialog()
{
this.InitializeComponent();
this.Loaded += MyDialog_Loaded;
}
private async void MyDialog_Loaded(object sender, RoutedEventArgs e)
{
TbInput.SelectAll();
TbInput.Focus(FocusState.Programmatic);
}
更新
澄清一下,所需的行为是这样的:在平板电脑或手机上运行时,当对话框打开时,我希望 1) 选择 TextBox 中的所有现有文本,以及 2) 显示虚拟键盘。
这样用户可以立即开始输入替换文本。
更新 2
我确实想知道我是在处理错误还是某些 Windows 10 设置:this page 上明确指出
默认情况下,只要焦点移动到可编辑的文本框并且最近的输入是通过触摸生成的,就会显示屏幕触摸键盘。无论焦点是通过编程方式设置还是通过用户交互设置,都会发生这种情况。
我可以验证我以编程方式设置的焦点是否已成功设置到 TextBox(Focus() 的返回值为true),并且我的测试场景中的最新输入是通过触摸。
【问题讨论】:
标签: uwp