2010-05-03 131 views
13

簡單問題: 如何檢測屏幕鍵盤是否顯示在Windows Mobile 7上?有沒有可以添加偵聽器的事件?檢測屏幕鍵盤是否顯示在Windows Phone 7上

它佔用了屏幕的一半左右,我想,當它被顯示滾動視圖起來......

編輯:

註釋以下指示更清楚什麼,我想做:我有一個文本框輸入,並且隨着用戶輸入它,一個自動完成下拉菜單出現在它下面(如谷歌建議)。默認情況下,活動控件(文本框)在聚焦時滾動到視圖中,並且屏幕鍵盤直接位於其下方。屏幕鍵盤出現在我的自動完成下拉列表的前面 - 我想要做的是讓屏幕向上滾動一點,所以有一些空間可以顯示我的下拉菜單。

windows phone用戶界面設計指導說:「當部署鍵盤時,應用程序應滾動以確保活動的編輯控件和插入符號在視圖中。這發生的很好,它只是隱藏在屏幕鍵盤後面的非活動下拉菜單。

該指南還指出,應用程序可以選擇顯示屏幕鍵盤,也可以選擇關閉它。

目前,我卡住了,我不認爲(根據我的研究和對這個問題的答覆),有可能檢測到屏幕鍵盤已被顯示。我正在調查我的調查,看看是否有可能確定頁面的「可見區域」(例如寬度爲&高度),並將其與文本框的onfocus相結合......不確定這是否會證明是有效的雖然。

回答

8

在MSDN上WP7論壇中的7.0,as confirmed by Microsoft's Peter Torr中,檢測虛擬鍵盤的顯示時間是不可能的。

也許,作爲一種骯髒的解決方法,您可以檢測文本框(或其父滾動查看器的偏移量)的位置何時發生更改,因爲這表示虛擬鍵盤已經出現或消失。

+0

看起來不可能 - 希望微軟將它添加到服務包中,否則我需要重新考慮我的設計。 。 – 2010-05-10 20:28:53

+0

鏈接似乎中斷。 – 2012-11-28 09:53:27

4

您可以收聽TextBox.GotFocusTextBox.LostFocus事件,以檢測應用程序中的文本框何時獲取並放棄焦點。

+2

我更願意知道屏幕鍵盤已經顯示 - 僅僅因爲文本框已經獲得焦點並不意味着屏幕上的鍵盤顯示(例如,手機可能有一個硬件鍵盤) – 2010-05-04 07:10:42

+1

好點。據我所知,目前的Windows Phone SDK無法檢測虛擬鍵盤何時出現。 – 2010-05-04 21:06:35

+0

他們可能會添加一個在屏幕上顯示的鍵盤時觸發的事件 - 類似這樣的事件必須已經發生,因爲當顯示SIP時,它會自動觸發一些動畫,如頁面標題元素向上滑動等,此事件可能會暴露在某些點,如果還沒有。 – RoguePlanetoid 2010-05-05 19:52:07

1

如果可編輯元素獲得焦點,那麼框架會自動將元素滾動到視圖中。所以你真的不應該做任何事情。

+3

如果您單擊文本框,它將滾動到視圖中,以便鍵盤直接位於控件的下方。不過,我有一個自動完成的下拉菜單,出現在控件下方,鍵盤覆蓋了這一點。當屏幕鍵盤顯示時,我希望控件位於屏幕的頂部... – 2010-05-04 07:12:56

相關問題