代码之家  ›  专栏  ›  技术社区  ›  David_001

检测到屏幕键盘已显示在Windows Phone 7上

  •  13
  • David_001  · 技术社区  · 16 年前

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

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

    编辑:

    下面的注释更清楚地表明了我正在尝试做的事情:我有一个文本框输入,当用户输入文本框时,它下面会出现一个自动完成下拉列表(如Google建议)。默认情况下,活动控件(文本框)在聚焦时滚动到视图中,并且屏幕键盘位于其正下方。屏幕上的键盘出现在我的“自动完成”下拉列表前面-我想做的是让屏幕滚动得再向上一点,这样我的下拉列表就可以显示出来了。

    Windows Phone用户界面设计指南说:“当部署键盘时,应用程序应该滚动以确保活动的编辑控件和插入符号在视图中”。这种情况发生的很好,只是非活动下拉菜单隐藏在屏幕键盘后面。

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

    现在我被卡住了,我不认为(根据我的研究和对这个问题的回答)有可能检测到屏幕上的键盘已经显示出来了。我正在移动我的调查,看看是否可以确定页面的“可见区域”(例如,宽度和高度以像素为单位),并将其与文本框的onfocus结合起来…但不确定这是否会有成效。

    3 回复  |  直到 16 年前
        1
  •  8
  •   Andréas Saudemont    16 年前

    在7.0中无法检测虚拟键盘的显示时间, as confirmed by Microsoft's Peter Torr 在关于msdn的wp7论坛上。

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

        2
  •  4
  •   Andréas Saudemont    16 年前

    你可以听 TextBox.GotFocus TextBox.LostFocus 用于检测应用程序中文本框何时获得和松开焦点的事件。

        3
  •  1
  •   Skeets    16 年前

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

    推荐文章