【问题标题】:How do I get the default tab order in WPF (i.e. Visual Tree order)?如何获得 WPF 中的默认选项卡顺序(即视觉树顺序)?
【发布时间】:2016-10-22 08:30:28
【问题描述】:

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

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

【问题讨论】:

  • 您是否尝试过调用所有控件然后获取它们当前的tabindex?如果是这样,您还尝试过什么?
  • 除非明确设置,否则当前选项卡索引设置为 Int Max,这意味着按可视树的顺序排列。是的,我试过了。

标签: wpf tabindex visual-tree


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 2011-04-02
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多