C# を使用して、Frame に EditText と Button を配置しています。編集フィールド内に書き込み、ボタンをクリックした後、仮想ソフト キーボードを非表示にしたいと考えています。
7 に答える
ダミー ボタンを追加してフォーカスを設定すると、キーボードが非表示になります。
ご質問ありがとうございます。私はこの問題のより良い解決策を得ました。このような
まず、xaml でハンドラーを追加できます
<Grid x:Name= Tapped="Grid_Tapped_1">
......
</Grid >
次に、次のように現在のページにフォーカスします。それはうまくいきます。
private void Grid_Tapped_1(object sender, TappedRoutedEventArgs e)
{
this.Focus(FocusState.Programmatic);
}
それはいけません。Input Hosting Manager と Soft Keyboardの動作に関する詳細情報があり、いつ表示または非表示になるかを知るために登録できます。ただし、アップかダウンかをプログラムで制御することはできません。
IsReadOnly
Textbox`のプロパティを設定してみてください。
「似たような」ことをしている
private void textbox_input_LostFocus(object sender, RoutedEventArgs e)
{
textbox_input.IsReadOnly = false;
}
private void textbox_input_Tapped(object sender, TappedRoutedEventArgs e)
{
if(e.PointerDeviceType != Windows.Devices.Input.PointerDeviceType.Mouse)
textbox_input.IsReadOnly = true;
else
textbox_input.IsReadOnly = false;
}
ユーザーがマウスを使用していない場合、これを切り取ってキーボードを抑制します...
また、KeyDown
テキストボックスが読み取り専用のときにイベントが発生するため、データを直接使用してビューモデルを設定し、テキストボックスを更新できます;)
IsTabStop=true
ボタンをクリックした後にコンテナを自動的に「送信」として設定することにより、タッチキーボードを非表示にするソリューションがあります。
EditText
しかし、ところで、次にそのページに入ると、 (と思われるTextBox
)が自動フォーカスされ、タッチキーボードが表示されることに気付きました。EditText
たぶん、送信後に無効にしたほうがよいでしょう。(入力操作を終了してブロックしているようです)