2013-08-19 67 views
3

我有一個文本框裏面有一個按鈕(Telerik的RadTextBox配置了一個Action)。 當用戶按下動作時,會顯示進度欄,屏幕變暗,併發生一些魔法。如何以編程方式隱藏鍵盤

我的問題是,由於該操作不會導致文本框失去焦點,屏幕鍵盤不會隱藏,並且一直覆蓋一半的屏幕。

我想以編程方式隱藏屏幕鍵盤,但不知道如何。

+0

你就不能強行將焦點設置上的另一個控制文本塊? –

+0

@KooKiz - 我可以,這就是我現在看到的,但我希望有一個真正的解決方案,而不是一個補丁。 – SaguiItay

回答

8

只是將焦點設置到主畫面:

this.Focus(); 

這將集中在不使用鍵盤,從而隱藏鍵盤控制。遺憾的是鍵盤沒有API來隱藏它。

+1

似乎沒有在Windows 10移動設備上工作... – matthewsheets

+1

@matthewsheets歡迎來到改變API和OS實現的世界! –

+0

我剛在Win 10 Mobile上試了一下,它工作得很好。也許他們再次改變了API:p等等,我把它拿回來。現在它只能在一些頁面上運行。看起來,頁面上的第一個元素不能是輸入字段,或者如果您調用this.Focus()並且鍵盤已啓動並再次運行,它將首先自動被選中。 – FloppyNotFound

2

而是嘗試禁用,然後使有問題的文本框在一個合適的位置(像曾經的查詢已提交或動作觸發):

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

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

不乾淨,但它可以完成這項工作(在Windows 10移動版中)。

+0

這個實際上適用於Windows 10 mobile – JBernardo

+0

醜陋,但在Win10上也使用JavaScipt UWP應用程序'(that.control.disabled = true; that.control.disabled = false;'' – sebagomez

0

這裏很多的解決方案僅適用於但對我來說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(); 
    }