簡體   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