2013-05-02 79 views
2

我想檢查軟件鍵盤是否在Windows Phone 8中打開。我發現一些稀疏的信息,這可能使用CoreWindow.IsKeyboardInputEnabled,但我找不到任何方法來實現這一點。我發現僅用於C++的示例代碼,我完全不明白。檢查軟件鍵盤是否在Windows Phone 8中打開?

我使用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 

編輯器標記爲錯誤,因此不會編譯。

如果相關,我想要做的是確保我的導航是一致的。目前,在特定屏幕元素上點按應關閉該元素。但是,如果鍵盤是打開的,我需要輕按關閉鍵盤並將打開的項目打開。我相信這對用戶來說是更直觀和一致的方法。

我認爲實現此功能的唯一方法是在確定如何處理任何打開的面板之前知道鍵盤是否打開。

例如 [當屏幕挖掘和彈出式擴展]

如果[鍵盤可見]然後[關閉鍵盤]別的[關閉竊聽項目]

回答

0

我不認爲有任何官方的API來檢測開關閉SIP,但一種解決方法可能是檢查是否有任何文本框有焦點。

您可以通過覆蓋每個文本框的GetFocus和LostFocus來做到這一點。

要關閉鍵盤,只需將焦點設置到ContentPanel(或任何其他網格)。

讓我知道這是否工作。