2

我有 10 个按字母顺序排列的复选框项目,例如:

Apple、AirCraft、Ball、Bottom、Cat等

通过A按键,焦点必须设置为Apple复选框,B- 到Ball。我怎样才能做到这一点?由于项目来源计数,这些复选框项目是动态变化的。

由于复选框项目没有在 XAML 中硬编码,我猜我无法标记;我在运行时加载它们。如果我有以下物品怎么办?

  1. 苹果
  2. 苹果1
  3. 苹果2

在这种情况下,我无法将快捷方式设置为正确,因此,如果我按下以字母AA开头的第一个项目将获得焦点,然后再次按下,则焦点设置为以字母A开头的下一个项目。如果它到达以字母A开头的最后一个项目,那么如果我再次按下它,它必须转到第一个以字母A开头的项目,所以这是我的要求:)。我怎样才能做到这一点?AA

4

4 回答 4

3

您可以通过首先按 alt 键来使用键盘导航,然后将复选框内容设置为:

<CheckBox Content="_Apple" />
<CheckBox Content="_Ball" />

请记住,关联的键盘快捷键将是“_”符号之后的快捷键。

于 2013-03-06T16:33:28.970 回答
1

遍历item非常简单:

通过A按键,必须将焦点设置到Apple复选框,B- 到Ball。由于项目来源计数,这些复选框项目是动态变化的。

只需按以下方式进行即可。将下划线符号"_"放在"A"之前:

  1. _苹果
  2. _苹果1
  3. _Apple2

如果我按下以字母AA开头的第一个项目将获得焦点,然后再次按下焦点设置为以字母A开头的下一个项目。如果它到达最后一个以字母A开头的项目,那么如果我再次按下它将转到第一个以字母A开头的项目。如果要选中复选框,可以使用. 提供的复选框项目必须在 ItemsControl 中。AASpaceBar

于 2013-04-08T09:32:47.000 回答
0

您需要提出一些规则来确定什么按键会导致哪个项目 - 即,如果有两个“A”项目,那么在“A”上选择了哪个项目?

然后,您必须手动找到与按键上输入的按键匹配的项目并突出显示它。

于 2013-03-06T11:55:16.623 回答
0

订阅OnPreviewKeyDown包含您的 CheckBox 项目的容器的事件。然后实现按下特定按钮时会发生什么。

于 2013-03-06T12:26:46.740 回答