2016-06-20 7 views
0

Я добавляю модуль проверки в мое приложение, которое будет направлять пользователя к входам, которые требуют внимания. Я хотел бы пройти через эти элементы управления в том же порядке, что и в Visual Tree. Индекс вкладок для каждого элемента управления установлен в значение Int Max, что означает просто порядок в визуальном дереве.Как получить порядок вкладок по умолчанию в WPF (т. Е. Порядок визуального дерева)?

Мой модуль проверки просто получает кучу элементов управления для проверки. Он должен заказывать их сверху вниз, чтобы пользователь мог последовательно проходить через форму. Я хотел бы сохранить исходное поведение табуляции. Мне просто нужно знать визуальный древовидный порядок элементов управления в моем списке, чтобы я мог правильно сортировать их.

+0

Вы пытались вызвать все элементы управления, а затем получить их текущий tabindex? Если да, то что еще вы пробовали? –

+0

Если явно не установлен, текущий индекс табуляции устанавливается в Int Max, который просто означает, идет в порядке визуального дерева. Да, я пробовал это. – NielW

ответ

0

После нескольких дней исследований я понял, что это не предусмотрено из коробки. В конце концов, я только что вызвал FindVisualChildren, чтобы получить все FrameworkElements, и если элемент управления реализовал мой интерфейс IValidatable, я присвоил ему следующий доступный индекс из счетчика. Мне пришлось добавить свойство зависимостей под названием «Заказ», чтобы он работал (я не хотел гадать с существующим TabIndex). Затем, когда я получил список элементов управления, нуждающихся в проверке, я просто отсортировал их по заказу.

Это, безусловно, не масштабируемое решение, но, к счастью, мне нужно только запустить его один раз.

Если у кого-то есть лучшее решение, ПОЖАЛУЙСТА, опубликуйте его. Я чувствую себя грязным.

 Смежные вопросы

  • Нет связанных вопросов^_^