0

我正在开发 WPF 中的自动化测试框架。我发现虽然可以使用基本的 WPF 自动化框架来自动化大多数事情,但很难深入了解 UI 级别正在发生的事情的细粒度细节。我需要能够查看诸如 DataContext 的属性、控件的属性等内容。我知道这是可能的,因为 Snoop 可以做到。Snoop 允许您遍历任何 WPF 应用程序的整个可视化树。我需要这个功能。所以,我写了这段代码:

public async Visual GetAppRootVisual()
{
    var allProcesses = Process.GetProcesses();
    var filteredProcess = allProcesses.Where(p => p.ProcessName.Contains(ProcessSearchText)).First();
    var windowHandle = filteredProcess.MainWindowHandle;
    var hwndSource = HwndSource.FromHwnd(windowHandle);
    return hwndSource.RootVisual;
}

代码一直运行到倒数第二行。倒数第二行返回 null,但我不知道为什么。返回 windowHandle,但不返回 HwndSource。这里出了什么问题?

4

0 回答 0