2010-05-03 124 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

相关问题