2014-10-31 2 views
6

키를 입력하면 소프트 키보드를 숨기고 싶지만 해결 방법이 제대로 작동하지 않습니다. (윈도우 폰 8.1 유니버셜 앱은)Windows Phone 8.1 소프트 키보드를 효과적으로 숨기는 방법은 무엇입니까?

이 사람은 그냥 작동하지 않습니다

if (e.Key == VirtualKey.Enter) 
{ 
    textBox.IsEnabled = false; 
    textBox.IsEnabled = true; 
} 

방법과 같이 :

private void LoseFocus(object sender) 
{ 
    var control = sender as Control; 
    var isTabStop = control.IsTabStop; 
    control.IsEnabled = false; 
    control.IsTabStop = false; 
    control.IsEnabled = true; 
    control.IsTabStop = isTabStop; 
} 

작품을 부분적으로 만. 처음으로 텍스트 상자를 사용할 때만 키보드가 숨겨져 있습니다. 두 번째로 키보드가 다시 나타납니다.

+0

이 같은 방법으로 다시'IsEnabled'을 끄고 경우, 양식이 등록되지 않습니다 것을 기억 입력 키보드를 숨길 수있는 전체 코드는 당신의 메소드가 완료 될 때까지 변경됩니다. 메소드 내에서 원하는 모든 값을 토글 할 수 있지만, 함수가 완료된 후의 결과 만 중요한 것입니다. – gunr2171

답변

2

난 그냥 그런 일을했고 그것은 작동하고 :

private async void makeRequest(string title, int page) 
    { 
     myTextBox.IsEnabled = false; 
     myTextBox.IsTabStop = false; 
     // here is my httprequest and changing itemssource of listview 
     myTextBox.IsEnabled = true; 
     myTextBox.IsTabStop = true; 
    } 
17

숨기고 InputPane을 보여 직접 API 지원이 있습니다. 시스템을 가짜로 만들 필요가 없습니다.

Windows.UI.ViewManagement.InputPane. TryShowTryHide 메서드는 Windows Phone 8.1에서 사용할 수 있습니다.

다른 옵션은 사용자가 Enter 키를 누를 때 더 적절한 컨트롤로 포커스를 이동하는 것입니다.

+0

이렇게하면 텍스트 상자를 다시 누르면 키보드가 다시 나타나지 않습니다 ... – Denny

9

이 사용자 프레스는 키

private void TextBox_KeyUp(object sender, KeyRoutedEventArgs e) 
    { 
     if(e.Key==Windows.System.VirtualKey.Enter) 
     { 
      Windows.UI.ViewManagement.InputPane.GetForCurrentView().TryHide(); 
     } 
    }