UIAutomation не может прокрутить мой UI-элемент. Но почему? - PullRequest
1 голос
/ 20 июня 2019

Я хочу вертикально прокрутить элемент пользовательского интерфейса WPF (сетку данных) с помощью Microsoft's UIAutomation.

inspect.exe показывает мне, что свойство VerticalScrollable имеет значение true, а HorizontallyScrollable имеет значение false, что является правильным:

enter image description here

Кроме того, если я использую функцию прокрутки в inspect.exe, я могу правильно прокрутить сетку данных (например, с помощью «Маленького приращения»):

enter image description here

Теперь я хочу использовать эту логику в моем коде C #, которая не работает.

Вот что я делаю:

// dataGrid correctly contains my UI-element.
ScrollPattern pattern = dataGrid.GetCurrentPattern(ScrollPattern.Pattern) as ScrollPattern;

// neither this works, ...
pattern.ScrollVertical(ScrollAmount.SmallIncrement);

// ... nor this works.
pattern.Scroll(ScrollAmount.NoAmount, ScrollAmount.SmallIncrement);

Кроме того, если я посмотрю на свойство VerticalScrollable ScrollPattern, для него будет установлено значение false, что не соответствует действительности, поскольку элемент можно прокручивать (вручную, а также автоматизировать с помощью inspect.exe):

enter image description here

Я получаю это исключение после того, как я позвонил, например, pattern.ScrollVertical(ScrollAmount.SmallIncrement);

enter image description here

Почему он работает из-за inspect.exe, а не по коду?

...