繁体   English   中英

创建 WPF 应用程序时,如何防止菜单栏被选项卡聚焦

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM