[英]When creating a WPF application, how do I prevent a menu bar from being focused with tab
我正在尝试在 XAML 中定义一个菜单栏。 我的菜单栏如下所示:
<DockPanel Margin="1,1,-1,-1">
<Menu DockPanel.Dock="Top" >
<MenuItem Header="_File">
<MenuItem Header="_Settings" />
<MenuItem Header="_Exit" />
</MenuItem>
<MenuItem Header="_Aircraft">
<MenuItem Header="_A2A Fuel and Payload Manager..." />
</MenuItem>
</Menu>
</DockPanel>
当我运行我的应用程序时,除了应用程序中的其他控件之外,按 Tab 键会将焦点设置在菜单栏上。 标准 Windows 行为不是在菜单栏上按标签,而只是按 Alt 从键盘访问它。 谁能解释为什么 WPF 中的默认设置是将菜单栏置于标签顺序中以及如何将其删除?
wpf 中的每个控件都有 TabIndex,因此要跳过一些控件,只需设置KeyboardNavigation.TabNavigation="None"
如果要从键盘导航中排除整个菜单栏,请使用附加属性KeyboardNavigation.TabNavigation
。 设置None
将禁用Menu
的所有子项的选项卡导航。
<DockPanel Margin="1,1,-1,-1">
<Menu DockPanel.Dock="Top" KeyboardNavigation.TabNavigation="None">
<!-- Your menu items -->
</Menu>
</DockPanel>
MenuItem
具有键盘焦点的原因首先是附加属性的默认值为Continue
,这实质上意味着:如果子项是制表位,他们将获得焦点。
如果您只想从键盘导航中排除特定控件,请设置IsTabStop="False"
。 这只会影响控件本身,而不影响其子项。
<MenuItem Header="_File" IsTabStop="False">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.