10

我需要自动化 Winform 应用程序。如何像本文中的 XAML 一样设置AutomationID(or ) ?AutomationName

从这篇堆栈溢出文章中,答案似乎是否定的,除非我将应用程序切换到 WPF 应用程序(这样我就可以使用 XAML 来定义控件)。

我尝试过这种天真的方法:

  AutomationElement formAutomation = AutomationElement.FromHandle(this.Handle);
  formAutomation.Current.Name = "SandboxResponseDialogName";
  formAutomation.Current.ClassName = "SandboxResponseDialogClassName";
  formAutomation.Current.AutomationId = "SandboxResponseDialogID;

但此时在控件的构造函数中,这些自动化属性只有 getter;没有二传手。

4

1 回答 1

7

如果你想UI Automation在代码中设置任何相关的东西,你需要使用这个:

using System.Windows.Automation;

在您的代码中:

YourObjectClass element = // just get your element.
element.SetValue(AutomationProperties.AutomationIdProperty, "elementAutomationID");

您还可以使用AutomationProperties.NamePropertyUIAutomation 名称。AutomationProperties顾名思义,包含 UIAutomation 元素(setter 和 getter)的所有属性。

于 2013-06-25T09:51:49.170 回答