作为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的质量还是有必要学习的。