检测到Windows Phone 7上是否显示了屏幕键盘

时间:2010-05-03 10:38:28

标签: windows-phone-7

简单问题: 如何检测到Windows Mobile 7上的屏幕键盘已显示?是否有可以添加监听器的事件?

占据屏幕的一半左右,我希望在显示时向上滚动视图...

修改

下面的评论更清楚地表明了我正在尝试做的事情:我有一个文本框输入,当用户输入时,会在其下方显示自动完成下拉菜单(如谷歌建议)。默认情况下,活动控件(文本框)在聚焦时滚动到视图中,屏幕键盘直接在其下方。屏幕键盘出现在我的自动完成下拉列表前面 - 我想要做的是让屏幕向上滚动一点,所以我的下拉列表有一些空间可以显示。

Windows Phone UI设计指南说:“部署键盘时,应用程序应滚动以确保活动的编辑控件和插入符号在视图中”。这很好,只是非活动的下拉列表隐藏在屏幕键盘后面。

指南还说应用程序可以选择显示屏幕键盘,也可以选择关闭它。

目前我被卡住了,我不认为(基于我的研究和对这个问题的回复)可以检测到屏幕键盘已经显示。我正在调查,看看是否可以确定页面的“可见区域”(例如宽度和高度,以像素为单位),并将其与文本框的onfocus结合...不确定这是否会证明虽然富有成效。

3 个答案:

答案 0 :(得分:8)

在MSDN上的WP7论坛中,无法在7.0 as confirmed by Microsoft's Peter Torr中检测虚拟键盘何时显示。

也许,作为一种肮脏的解决方法,您可以检测文本框的位置(或其父滚动查看器的偏移)何时发生变化,因为这表明虚拟键盘已经出现或消失。

答案 1 :(得分:4)

您可以收听TextBox.GotFocusTextBox.LostFocus事件,以检测应用中的文本框何时获取并失去焦点。

答案 2 :(得分:1)

如果可编辑元素获得焦点,则框架将自动将元素滚动到视图中。所以你真的不应该做任何事情。