如何在WinUI3的自动化树中移除<Run/>元素的焦点?
解决WinUI3中图标Run元素在自动化树的焦点问题
要让图标对应的<Run>元素不在自动化树中被识别为可获取焦点的元素,你可以通过设置自动化属性来实现:
- 给图标Run添加
AutomationProperties.AccessibilityView="Raw"属性,这样该元素只会存在于自动化树的原始视图中,不会被辅助技术(如屏幕阅读器)当作可交互的控制元素,自然也就不会获得焦点。 - 搭配
IsHitTestVisible="False"可以确保该元素不响应点击等交互,进一步避免焦点相关问题。
修改后的代码如下:
<TextBlock TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="{ThemeResource TextColor}"> <Run Text="" FontFamily="{StaticResource Icons}" FontSize="16" FontWeight="Normal" AutomationProperties.AccessibilityView="Raw" IsHitTestVisible="False" /> <Run x:Uid="SignIn" FontWeight="SemiBold" FontSize="18" /> </TextBlock>
补充说明
AutomationProperties.AccessibilityView的可选值作用:
Control:元素作为可交互控件出现在自动化树(默认行为)Raw:元素仅作为原始内容存在,不被视为可交互控件Hidden:元素完全从自动化树中隐藏
这里用Raw既保留了元素的文本内容(不影响整体文本的朗读逻辑),又不让它成为可获取焦点的控件,是适配需求的最优选择。
内容的提问来源于stack exchange,提问作者AkritiCodes
相关产品推荐
相关产品推荐

