私は現在、UWPアプリケーションで使用するタッチキーボードを構築しようとしています。私が思いついた解決策の1つは、仲介コンポーネントを使用してSendKeysファンクションをボタンで呼び出すことでした(IsTabStopをfalseに設定し、ClickModeを押して、入力コントロールからのフォーカスの損失を防ぐ)。これまでのところ、すべてが動作します(問題なくTextBoxをテストしました)。WebView内のHTML要素に入力フォーカスを失わないようにするにはどうすればよいですか?
問題:WebViewコントロールを使用していくつかの問題が発生しました。ボタンをクリックすると、WebViewはフォーカスを期待どおりに保持します。ただし、DOM要素(HTMLの<input>
マークアップなど)は入力フォーカスを失います(視覚的に選択されたままです)。
私はウェブビューの焦点をリセットすることでこれを解決する方法を見つけました。それは別の問題を明らかにした。入力要素がフォーカスされるたびに、コンテンツ(文字列)のすべてを選択するように入力要素が設定されているとします。次に、自分のボタンの1つをクリックするたびに、コンテンツが選択され、WebViewに送信された新しい文字に置き換えられます。
私の質問は、XAMLボタンをクリックしたときにDOMオブジェクトのフォーカスを失うことを避ける方法はありますか?
NB:私はInputPaneについて知っていますが、このアプリケーションでは使用できません(クライアント側の制限のため)。また、何か不明な点がある場合はお知らせください。できるだけ早く編集します。
NB2:WebViewで表示されるページのソースコードには絶対にアクセスできません。また、特定の要素の存在を頼りにすることはできません。
ご協力いただきありがとうございます。このプロパティの動作は、IsTabStopに非常に近いようです(少なくとも、両方で同じ結果が得られます)。 Button.ClickハンドラのFocus()呼び出しについては、これまでの説明とほとんど同じですが、入力要素がWebページでどのように処理されるかによっていくつかの問題が発生します。 私はあなたのソリューションを試しましたが、残念ながらWebView自体の焦点は問題ではないようです。フォーカスがWebViewに保持されていても(実際にどのように処理されているかはわかりませんが)、コントロールが入力フォーカスを失うようなクリックハンドラがあるようです。 – Dragosh