如何以编程方式隐藏键盘

时间:2013-08-19 20:30:03

标签: c# windows-phone

我有一个带有按钮的文本框(Telerik的RadTextBox配置了Action)。 当用户按下动作时,会显示进度基础,屏幕变暗,并且会发生一些魔术。

我的问题是,由于动作不会导致文本框失去焦点,因此屏幕键盘不会被隐藏,并且会一直覆盖屏幕的一半。

我想以编程方式隐藏屏幕键盘,但不知道如何。

3 个答案:

答案 0 :(得分:8)

只需将焦点设置到主页面:

this.Focus();

这将聚焦不使用键盘的控件,从而隐藏键盘。不幸的是,键盘上没有隐藏的API。

答案 1 :(得分:2)

而是尝试禁用,然后在适当的位置启用相关文本框(例如,一旦提交了查询或触发了操作):

   TextBox.IsEnabled = false;
   TextBox.IsEnabled = true;

(通过https://stackoverflow.com/a/23905874/1963978

不干净,但它完成了工作(在Windows 10移动设备中)。

答案 2 :(得分:0)

这里很多解决方案仅适用于Textblock,但在我的情况下可用于AutoCompleteBox

  <toolkit:AutoCompleteBox Name="autoComplateTxt"
                                             Grid.Row="4"
                                             Margin="15,5,2,10"
                                             Padding="0"
                                             Height="65"
                                             Text=""
                                             BorderThickness="1"
                                             BorderBrush="Black"
                                             VerticalAlignment="Center"
                                             
                                          DropDownClosed="autoComplateTxt_DropDownClosed"
                                              />

 private void autoComplateTxt_DropDownClosed(object sender, RoutedPropertyChangedEventArgs<bool> e)
    {
        this.Focus();
    }