如何获取WPF中的默认Tab键顺序(即Visual Tree顺序)?

时间:2016-06-20 23:41:15

标签: wpf tabindex visual-tree

我在我的应用程序中添加了一个验证模块,它将引导用户注意需要注意的输入。我想按照它们添加到Visual Tree中的顺序执行这些控件。每个控件的Tab索引设置为Int Max,这意味着只按可视树的顺序。

我的验证模块只是获得了一堆控件来验证。它需要从上到下排序,以便用户可以按顺序浏览表单。我想保留原始的标签行为。 我只需要知道列表中控件的可视树顺序,这样我就可以对它们进行正确的排序。

1 个答案:

答案 0 :(得分:0)

经过几天的研究,我意识到这不是开箱即用的。最后,我只调用了FindVisualChildren来获取所有FrameworkElements,如果控件实现了我的IValidatable接口,我就从计数器中为它分配了下一个可用的索引。我不得不添加一个名为Order的依赖属性来使其工作(我不想用现有的TabIndex进行混乱)。然后,当我得到需要验证的控件列表时,我只是按顺序对它们进行排序。

这绝对不是一个可扩展的解决方案,但幸运的是我只需要运行一次。

如果有人有更好的解决方案,请发布。我觉得很脏。