有没有办法在不使用XAML的情况下设置对象的AutomationID?
我需要自动化Winform应用程序。 如何像本文中的XAML一样设置AutomationID
(或AutomationName
)?
从这个堆栈溢出文章看 ,答案似乎是否定的,除非我将应用程序切换到WPF应用程序(因此我可以使用XAML来定义控件)。
我尝试过这种天真的方法:
AutomationElement formAutomation = AutomationElement.FromHandle(this.Handle); formAutomation.Current.Name = "SandboxResponseDialogName"; formAutomation.Current.ClassName = "SandboxResponseDialogClassName"; formAutomation.Current.AutomationId = "SandboxResponseDialogID;
但是在控制构造函数的这一点上,这些Automation属性只有getter; 没有二传手。
如果要在代码中设置与UI Automation
相关的任何内容,则需要使用:
using System.Windows.Automation;
在你的代码中:
YourObjectClass element = // just get your element. element.SetValue(AutomationProperties.AutomationIdProperty, "elementAutomationID");
您还可以将AutomationProperties.NameProperty
用于UIAutomation名称。 AutomationProperties
包含UIAutomation元素(setter和getter)的所有属性,顾名思义。