wpf - WPF:如何防止讲述人读取 AccessText 元素的下划线字符?
问题描述
在尝试同时支持键盘和讲述人可访问性时,我遇到了一个奇怪的问题。
在以下 XAML 代码中:
<StackPanel>
<CheckBox Name="CheckBox"
AutomationProperties.Name="{Binding RelativeSource={RelativeSource Self}, Path=Content.(AccessText.Text)}">
<AccessText >C_heck me</AccessText>
</CheckBox>
</StackPanel>
默认的 Windows 10 讲述人显示为“ C underscore heck me CheckBox unchecked
”。
有什么方法可以保持键盘导航并从讲述人那里获得读数为“ Check me checkbox unchecked
”?
请注意,上面的代码是一个示例,我有很多地方会出现类似问题。我已经尝试添加转换器并将其与 AutomationProperties.Name 一起使用,但它导致应用程序运行缓慢。
解决方案
您使用自己的(比如)AccessTextToAutomationPropertiesNameConverter() 的方法去除了下划线,这对于某些应用程序来说是一种有吸引力的方式。当您这样做时,对您的应用程序的性能有何影响(以及必须通过转换器运行多少控件)?你的转换器有一次性模式吗?另一种选择是为 AutomationProperties.Name 和 AccessText 使用单独的本地化字符串,但我可以看到这并不吸引人,因为它会增加本地化成本。
推荐阅读
- mysql - 用数组值拆分逗号分隔的字符串
- xamarin.forms - Xamarin Forms - iOS - 返回按钮标题
- service-worker - 将 Google Workbox setDefaultHandler // setCatchHandler 从 v2 迁移到 v3
- javascript - 从反应中的输入字段获取值
- json - 使用 CURL 向训练数据添加查询
- mysql - 如何从 2 个重复行中只删除一行?
- javascript - 反应列表选择选项
- reactjs - 在 React 应用程序中导入 CSS
- c# - 可视化编辑器重命名变量
- python - 从脚本打开 Chromium