UWP基础教程 - AuotmationProperties.Name

作为Windows10 UWP开发,大家应该会在很多示例DEMO里面看到AuotmationProperties.Name这个属性吧

<Button AutomationProperties.Name="Hello">Hello</Button>

AuotmationProperties.Name属性的作用是为控件指定可访问性名称,这个名称可以被类似于“讲述人”软件识别,从而提供了软件的可访问性(如视力有障碍的人等),同样也可以在自动化测试中被使用。原则上,一个控件的AutomationProperties.Name最好与此控件显示的标签文本一致(如上代码所示)

微软也非常人性化,如果某个控件(或元素)有可视化文本内容(如 Button 的 Content 属性设置了文本),那么该控件上显示的文本将作为它的 Accessible Name,因此对于这种类型的控件不需要专门为其设置 AutomationProperites.Name 属性。

如果该控件没有可示文本,那么你可以进行设置 AutomationProperties.Name ,如果你需要设置多语言,可以用以下方式来实现

<Button x:Uid="TestButton" />

在 Strings/zh-cn/Resources.resx 中,我们添加一条项目为其设置 Accessible Name,如下:

Name:    TestButton.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name                    
Value:   Test Button

AutomationProperties.Name同样也支持Binding和TemplateBinding方式,你可以通过下面的方式来设置

 <TextBox …
         Header="Hello"
         AutomationProperties.Name= "{Binding Header, RelativeSource={RelativeSource Self}}" />

当然同样可以采用C#代码来设置

using Windows.UI.Xaml.Automation;
myControl.SetValue(AutomationProperties.NameProperty, 'Hello');

虽然微软并不强制要求使用AutomationProperties.Name属性,但是对于提升一个APP的质量还是有必要学习的。