我需要自动化Winform应用程序。如何像this article 中的XAML一样设置AutomationID
(或AutomationName
)?
从stack overflow article开始,答案似乎是否定的,除非我将应用程序切换到WPF应用程序(因此我可以使用XAML来定义控件)。
我尝试过这种天真的方法:
AutomationElement formAutomation = AutomationElement.FromHandle(this.Handle);
formAutomation.Current.Name = "SandboxResponseDialogName";
formAutomation.Current.ClassName = "SandboxResponseDialogClassName";
formAutomation.Current.AutomationId = "SandboxResponseDialogID;
但是在控件构造函数的这一点上,这些Automation属性只有getter;没有制定者。
答案 0 :(得分:4)
如果你想在代码中设置与UI Automation
相关的任何内容,你需要使用它:
using System.Windows.Automation;
在您的代码中:
YourObjectClass element = // just get your element.
element.SetValue(AutomationProperties.AutomationIdProperty, "elementAutomationID");
您也可以使用AutomationProperties.NameProperty
作为UIAutomation名称。 AutomationProperties
包含UIAutomation元素的所有属性(setter和getter),如名称所示。