中国語、英語、数字、その他の一般的な人々が入力できるように、キーボードとマウスを備えたコンピューターのタッチスクリーンコンピューターに適用されるプロジェクトを作成します。
1.自分でキーボードを描いた、
中国語入力を実現するために、簡単なピンイン入力方法も書いたが、さまざまな投げ方が必ずしも快適ではなかった。結局、クライアントは中国語の手書き入力を求めたため、完全に諦めました。
次に、TabTip.exe
win10仮想キーボードをプログラム、つまりc:\ Program Files \ CommonFiles \ MicrosoftShared \ ink \ TabTip.exeに置きます。テキストボックスにフォーカスがあると、次のコードが実行されます
var file = "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe";
if (!System.IO.File.Exists(file))
return;
Process.Start(file);
時々失敗し、後でプロセスを最初に強制終了する必要があることが判明したため、
foreach (var process in Process.GetProcessesByName("TabTip"))
process.Kill();
var file = "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe";
if (!System.IO.File.Exists(file))
return;
Process.Start(file);
それは大丈夫だと思われ、数字キーボードをポップアップさせたり、英語のみを入力したり、レジストリを確認したりできるかどうかなど、実際に記事を見つけましたWPF Disable TextBox touchが自動的に仮想キーボードを自動的にポップアップし、タッチがキーです、めまい。
そのため、タブレットモードのときに仮想キーボードが自動的にポップアップするのではないかと思いました。後で、キーボードとマウスのないwin10に、「タブレットモードではなく、キーボードが接続されていないときにタッチキーボードを表示する」というスイッチがあることがわかりました。あまりにも。
3番目に、TextBoxを直接制御します
<TextBox Name="tb1" FontSize="50" HorizontalContentAlignment="Center" InputMethod.IsInputMethodEnabled="True" InputMethod.InputScope="Digits"/>
<TextBox Name="tb2" FontSize="40" InputMethod.IsInputMethodEnabled="True" InputMethod.InputScope="PersonalFullName"/>
tb1がフォーカスを取得すると(touchまたはtb1.Focus())、仮想キーボードの数値インターフェイスが自動的に表示されます
tb2は、フォーカスを取得すると、キーボード全体を自動的に表示します
必ずタッチし、マウスでボタンをクリックしてから、tb1.Focus()を実行して失敗します