我想在我的 C# 程序中使用 System.Windows.Automation 来报告 FocusChangedEvent 上的 Name 属性,就像 AccEvent.exe 一样。
我有一个简单的控制台应用程序,它应该在 FocusChangedEvent 被触发时显示发件人的姓名:
Automation.AddAutomationFocusChangedEventHandler((sender, e) => {
AutomationElement element = sender as AutomationElement;
if (element != null)
{
Console.WriteLine(element.Current.Name);
}
});
这主要按我的预期工作。在窗口和窗口中的元素之间切换我的焦点会显示焦点元素的名称。但是对于很多元素, Name 属性返回空字符串 ("")。
使用 AccEvent.exe (UIA FocusEvent) 检查,对于相同的元素,发件人名称显示良好。
如何解决这个问题?任何方向将不胜感激。