13

简单的问题:如何检测屏幕键盘已在 windows mobile 7 上显示?有没有可以添加监听器的事件?

它占据了大约一半的屏幕,我想在它显示时向上滚动视图......

编辑:

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

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

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

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

4

3 回答 3

8

正如微软的 Peter Torr在 MSDN 上的 WP7 论坛中所证实的那样,在 7.0 中检测虚拟键盘何时显示是不可能的。

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

于 2010-05-09T09:20:37.183 回答
4

您可以侦听TextBox.GotFocusTextBox.LostFocus事件来检测应用程序中的文本框何时获得和失去焦点。

于 2010-05-03T21:19:33.587 回答
1

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

于 2010-05-03T22:08:51.517 回答