Windows UI 自动化。如何自动化Windows资源管理器滚动条?

LLL*_*LLL 0 c# automation microsoft-ui-automation

我正在使用 Windows UI 自动化框架:http : //msdn.microsoft.com/en-us/library/System.Windows.Automation(v=vs.110).aspx

我遇到的问题是微软提供的 UI 自动化框架似乎对某些 Windows 资源管理器视而不见。我可以找到根 AutomationElement“滚动条”,但是我找不到它的子组件,即按钮、位置等。这很奇怪,因为显然很多 WPF 应用程序会使用 Windows 资源管理器来选择文件,因此 Microsoft 会将其视为一个主要错误在其框架内。所以我一定是做错了什么?

在此处输入图片说明

下面的代码演示了我在做什么。root是 Windows 资源管理器 AutomationElement。我验证了这一点,因为我可以看到滚动条项目,因为它有一个自动化 ID。我还验证了它是正确的垂直滚动条,因为 Windows 资源管理器中有两个。

 AutomationElement functionControl = root.FindFirst(TreeScope.Descendants |         
 TreeScope.Element | TreeScope.Subtree,new 
 PropertyCondition(AutomationElement.NameProperty, "Page down"));
Run Code Online (Sandbox Code Playgroud)

Tal*_*fer 5

你究竟想做什么?如果您试图向下滚动,则不应通过实际找到向下/向上按钮来实现,而是通过从滚动条本身请求 ScrollPattern,然后调用 ScrollVertical/ScrollHortizontal/SetScrollPercent -- 无论您喜欢哪个.