2

Windows Phone 8 でソフトウェア キーボードが開いているかどうかを確認したいのですが、CoreWindow.IsKeyboardInputEnabled を使用してこれが可能であるといういくつかのまばらな情報を見つけましたが、これを実装する方法が見つかりません。C++ だけのサンプル コードを見つけましたが、まったく理解できません。

私は VB を使用していますが、C# の例を入手できれば、C# を十分に理解することができます。

私が何をしても、私は常にヌル/何も値を取得しません。次のコードはコンパイルおよび実行されますが、アプリが if c.IsKeyboarInputEnabled... 行でクラッシュすると、c は「何もありません」です。

Dim c as CoreWindow
c = CoreWindow.GetForCurrentThread
if c.IsKeyboardInputEnabled then...

「c」に値を指定する必要があることはわかっていますが、その方法がわかりません。私も試しました:

Dim c as CoreWindow = New CoreWindow

エディターがエラーとしてフラグを立てるため、コンパイルされません。

関連する場合、私がやろうとしているのは、ナビゲーションが一貫していることを確認することです. 現在、特定の画面要素をタップすると、その要素が閉じます。ただし、キーボードが開いている場合は、そのタップでキーボードを閉じて、タップした項目を開いたままにしておきます。これは、ユーザーにとってより直感的で一貫したアプローチだと思います。

この機能を実現する唯一の方法は、開いているパネルをどうするかを決定する前に、キーボードが開いているかどうかを知ることだと思います。

例 [画面タップでポップアップを展開した場合]

If [キーボードが見える] then [キーボードを閉じる] else [タップされた項目を閉じる]

4

1 に答える 1

0

SIP の開閉を検出する公式の API はないと思いますが、回避策の 1 つは、TextBox にフォーカスがあるかどうかを確認することです。

これを行うには、TextBox ごとに GetFocus と LostFocus をオーバーライドします。

キーボードを閉じるには、フォーカスを ContentPanel (またはその他のグリッド) に設定します。

これがうまくいくかどうか教えてください。

于 2014-07-01T07:07:25.980 に答える