Я использую WPF для отображения сложных данных (например, отчеты). Теперь мне нужен полнотекстовый поиск. В настоящее время мы делаем это, обходя визуальное дерево в поисках текстовых блоков. Кажется, что это должно быть сделано в потоке пользовательского интерфейса, не так ли? Проблема здесь в том, что может пройти довольно много времени, пока не будет найдено следующее совпадение во время целых блоков пользовательского интерфейса.
Есть ли способ обойти эту проблему? Я мог бы попытаться использовать UI Automation, но как только я нашел соответствие, как я могу выделить его? При использовании автоматизации пользовательского интерфейса я не получаю ссылки на фактический экземпляр объекта элемента пользовательского интерфейса, поэтому я не могу поместить на него рекламный элемент.
Как обычно осуществляется полнотекстовый поиск в WPF? Как программа просмотра XPS это делает?