Windows phone 7 当屏幕上的键盘可见时,如何使后退按钮后退?

Windows phone 7 当屏幕上的键盘可见时,如何使后退按钮后退?,windows-phone-7,Windows Phone 7,我有一个简单的输入表单,由一个文本框和一个“确定/取消”按钮组成。为了给用户节省一些点击,我在显示页面时将焦点移到文本框中,这样键盘就会弹出。在这一点上,我希望“后退”按钮的行为与按下时的取消和向后导航相同,但实际上,它只是从文本框中移除焦点,甚至不触发BackKeyPress事件。在下一次按下时,它确实会向后移动,但这是两次而不是一次单击 所以我有两个问题 如何使后退按钮“返回”,即使键盘是可见的 从WP7交互设计的角度来看,我是不是在做坏事 您可以做的是处理textbox的KeyUp方法。按

我有一个简单的输入表单,由一个文本框和一个“确定/取消”按钮组成。为了给用户节省一些点击,我在显示页面时将焦点移到文本框中,这样键盘就会弹出。在这一点上,我希望“后退”按钮的行为与按下时的取消和向后导航相同,但实际上,它只是从文本框中移除焦点,甚至不触发BackKeyPress事件。在下一次按下时,它确实会向后移动,但这是两次而不是一次单击

所以我有两个问题

  • 如何使后退按钮“返回”,即使键盘是可见的
  • 从WP7交互设计的角度来看,我是不是在做坏事

  • 您可以做的是处理textbox的KeyUp方法。按下某个键时,检查是否是硬件后退键。在我的测试中,硬件后退键的
    PlatformKeyCode
    值为27。我不确定这是否会在硬件设备之间发生变化。但是,如果没有,您可以执行以下操作:

        private void TextBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if(e.PlatformKeyCode == 27)
            {
               //Navigation code
            }
    
        }
    

    至于这是否是个好主意,我不确定。对于屏幕键盘,后退键的主要功能是关闭键盘。这是用户在各种应用程序中最常体验到的,所以这就是他们可能期望从您的应用程序中得到的。然而,由于您的SIP是自动显示的,我想您可能会认为它几乎是布局本身的一部分。我在中看不到关于它的任何信息,但您应该阅读一下,以防我遗漏了什么。

    您是否检查过是否可以覆盖该方法

    根据应用程序认证指南,您可以使用Back key执行以下操作:

    5.2.4使用后退按钮

    为了保持一致的用户体验,后退按钮只能用于应用程序中的向后导航

    a。从应用程序的第一个屏幕按后退按钮必须退出应用程序

    b。按下后退按钮必须将应用程序返回上一页

    c。如果当前页面显示上下文菜单或对话框,则按下后退按钮必须关闭菜单或对话框,并取消上一页的向后导航

    d。对于游戏,当在游戏过程中按下“后退”按钮时,游戏可以选择显示暂停上下文菜单或对话框,或将用户导航到先前的菜单屏幕。在暂停的上下文菜单或对话框中再次按“上一步”按钮将关闭菜单或对话框

    这可能也很有用


    我同意keyboardP的观点,即您不应该真正覆盖SIP如何与硬件后退按钮交互的默认行为,但您可以始终提交它,然后看看会发生什么:)

    当按下硬件后退按钮时,不会触发KeyUp事件。@MihaiDamian-答案几乎有5年了。我相信最新的方法是处理这个被压制的事件