【问题标题】:How to change default behaviour that a textbox loses focus on back button pressed如何更改文本框在按下后退按钮时失去焦点的默认行为
【发布时间】:2013-02-25 06:38:10
【问题描述】:

当文本框处于焦点时按下返回按钮的默认行为是虚拟键盘关闭并且文本框失去焦点。用户再次按下返回键,窗口返回上一个窗口。

但是,我想改变这种行为。我希望窗口在按下后退键时直接返回到上一个窗口,忽略文本框是否处于焦点。

我尝试了以下方法,

  1. 使用 HardwareButtons.BackPressed 事件,不起作用(也许它只适用于 Direct3D,我不确定)。按下后退按钮期间不会触发该事件。

  2. 使用 Textbox_onKeyUp,不起作用。后退按钮打开时不会触发该事件。

  3. 使用覆盖无效 OnBackKeyPress,不起作用。在其他情况下它确实会按预期触发,但是在文本框从焦点到失去焦点(键盘关闭)的情况下,不会触发该事件。

  4. 使用 Textbox_OnLoseFocus,工作正常,但需要进行大量条件检查,因为有时失去焦点并不意味着我想返回上一页。

请帮忙。谢谢。

【问题讨论】:

  • 这是预期行为,可能会惹恼您的用户而不是有用。
  • 嗨奥斯汀,如果你使用诺基亚地图,点击搜索按钮,弹出一个弹出窗口,然后你直接按返回按钮,弹出窗口立即关闭,而不是先关闭输入。我相信在你只有一个文本框的情况下,让用户按两次会太麻烦。
  • 我同意@AustinSalonen 我不知道微软会对此有何反应,如果您在 iOS 上尝试此操作,您的应用很可能会被拒绝。
  • 嗨,evanmcdonnal,那为什么诺基亚地图可以做到这一点?

标签: c# windows-phone-8 windows-phone


【解决方案1】:

最后我没有改变行为,做了不同的设计。但我仍然认为,在这种情况下,诺基亚的行为是最人性化的。

【讨论】:

    猜你喜欢
    • 2012-02-05
    • 2011-06-29
    • 2018-12-05
    • 2023-04-04
    • 1970-01-01
    • 2019-02-25
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多