我正在尝试从 Windows 中的
.Net 7
c# 程序单击应用程序中的按钮。该按钮只有属性 IsLegacyIAccessiblePatternAvailable = true
,我可以在 Windows Inspect.exe 中看到该属性。因此,我确实尝试使用以下方式调用按钮:
if (button_Create.TryGetCurrentPattern(LegacyIAccessiblePattern.Pattern, out var pattern))
{
var legacyPattern = (System.Windows.Automation.LegacyIAccessiblePattern)pattern;
legacyPattern.DoDefaultAction();
}
但是,我无法让它工作,因为找不到
LegacyIAccessiblePattern
并出现错误 CS0103
和 CS0234
。不过,System.Windows.Automation
中的其他方法也是可用的。
我需要做什么才能告诉 VS 包含正确的库?
您使用的是 Windows Automation API v3.0 吗?我发现这个适配器可以使用旧版本 API 中的方法,并且它们包括 LegacyIAccessiblePattern。因此,您可能会尝试使用仅在旧版本 API 中可用的类。
您可能想尝试引用 NuGet 包 Interop.UIAutomationClient 并看看它是否能解决问题。