2013-10-24 3 views
0

Я использую рамки автоматизации пользовательского интерфейса Windows: http://msdn.microsoft.com/en-us/library/System.Windows.Automation(v=vs.110).aspxАвтоматизация пользовательского интерфейса Windows. Как автоматизировать прокрутку прокрутки окон?

Проблема Я бегу в том, что основа автоматизации пользовательского интерфейса, предоставленный корпорацией Майкрософт, казалось бы, слеп к некоторым из окна проводника. Я могу найти корень AutomationElement «Полоса прокрутки» , однако я не могу найти его подкомпоненты, т. Е. Кнопку, положение и т. Д. Это пахнет, потому что очевидно, что многие приложения WPF будут использовать проводник Windows для выбора файлов, и, таким образом, Microsoft будет рассматривать это как основное ошибка в ее рамках. Значит, я должен делать что-то неправильно?

enter image description here

Код ниже демонстрирует, что я делаю. root - это обозреватель Windows AutomationElement. Я проверил это, так как я вижу элемент полосы прокрутки, так как он имеет идентификатор автоматизации. Я также подтвердил, что это была правильная вертикальная полоса прокрутки, так как в обозревателе Windows их две.

AutomationElement functionControl = root.FindFirst(TreeScope.Descendants |   
TreeScope.Element | TreeScope.Subtree,new 
PropertyCondition(AutomationElement.NameProperty, "Page down")); 
+0

Думаю, мне придется вернуться к этому, когда у меня будет время. Однако после сна на нем, скорее всего, мне придется использовать необработанный ходок. Я также повторно реализовал это, используя шаблон Value на одном элементе автоматизации, который я могу получить, и система автоматизации не могла обнаружить, что эта полоса прокрутки реализует этот шаблон. – LLL

+0

Также, поскольку я не тестирую этот диалог ... Я сдаюсь и найду альтернативный маршрут. Я предлагаю то же самое для всех остальных, которые оказываются в такой ситуации. – LLL

ответ

2

Что вы на самом деле пытаетесь сделать? Если вы пытаетесь прокрутить вниз, вы не должны этого делать, на самом деле находите кнопку «вниз»/«вверх», а просто запрашиваете ScrollPattern из самой полосы прокрутки, а затем вызываете ScrollVertical/ScrollHortizontal/SetScrollPercent - в зависимости от того, что вы предпочитаете ,

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