3

我在 Windows Phone 上。我想在您创建新事件时复制日历应用程序的行为。如果您触摸名称文本框,然后按软键盘的 Enter 键,应用程序会将焦点从该文本框移至下方。

我不知道如何在我自己的应用程序中做到这一点。

我猜我必须使用 IsTabStop + TabIndex 属性,也许还有 TabNavigation。

但如果我设置它们,它不会改变任何东西。

像那样 :

<TextBox
  IsTabStop="True"
  TabIndex="1" />
<TextBox
  IsTabStop="True"
  TabIndex="2" />

这是一个简单的行为,我无法理解为什么我无法单独弄清楚这一点。

谢谢。

4

2 回答 2

5

使用KeyDown事件textBox1。并通过以下方式检查if (e.Key == Key.Enter || e.PlatformKeyCode == 0x0A)并将焦点更改为另一个文本框textBox2.Focus()

于 2012-09-04T08:55:46.427 回答
4

我看到了两种可能的方法来做到这一点。

在第一种情况下,您知道之前和之后的字段,因此您可以对行为进行硬编码。当用户在 textbox1 上按“Enter”时,您将关注 textbox2,依此类推。

编辑:这正是@milan-aggarwal 所说的

第二个也是更通用的想法是使用VisualTreeHelper ( http://msdn.microsoft.com/fr-fr/library/system.windows.media.visualtreehelper.aspx )。

当用户按下“Enter”(这很容易检测到)时,您可以使用 VisualTreeHelper 查看 englobing 面板的子项,以便选择和聚焦下一个文本框(或其他类型的 UI 组件)。

我不知道是否有本地解决方案可以做同样的事情。

于 2012-09-04T08:58:54.107 回答