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