2012-04-18 96 views
2

我有一个菜单视图:WPF菜单标签导航

<Menu IsTabStop="False"> 
    <MenuItem 
     Header="_File" 
     IsTabStop="True"> 
     <MenuItem 
      Header="New/Start Over" 
      IsTabStop="True" 
      InputGestureText="Ctrl+N" 
      Command="{x:Static common:Commands.StartOverCommand}" /> 
     <Separator 
      IsTabStop="False" /> 
     <MenuItem 
      Header="Log Out" 
      IsTabStop="True" 
      InputGestureText="F12" 
      Click="LogoutMenuItem_Click" /> 
     <MenuItem 
      Header="E_xit" 
      IsTabStop="True" 
      InputGestureText="Alt+F4" 
      Click="ExitMenuItem_Click" /> 
    </MenuItem> 
    <MenuItem 
     Header="_Edit" 
     IsTabStop="True"> 
     <MenuItem 
      Header="Undo Edit Field" 
      IsTabStop="True" 
      InputGestureText="Ctrl+Z" 
      Click="_undoMenuItem_Click" /> 
     <MenuItem 
      Header="Redo Edit Field" 
      IsTabStop="True" 
      InputGestureText="Ctrl+Y" 
      Click="_redoMenuItem_Click" /> 
    </MenuItem> 
    <MenuItem 
     Header="_Tools" 
     IsTabStop="True"> 
     <MenuItem 
      Header="Comments" 
      IsTabStop="True" 
      InputGestureText="Ctrl+M" 
      Click="_commentsMenuItem_Click" /> 
    </MenuItem> 
</Menu> 

我想使用左,右箭头键,以便能够通过菜单(文件,编辑,工具)来浏览其我能够通过使这些MenuItems IsTabStop="True"完成。但是因为我这样做了,所以我可以在页面上循环浏览其他有效字段时切换到菜单。当我使用Alt + F将焦点放在文件菜单上时,我希望能够通过箭头键循环浏览3个菜单,但我不想从页面中选择这些菜单。我怎么做到这一点?

+3

尝试[KeyboardNavigation.TabNavigation附加属性(http://msdn.microsoft.com/en-us/library/system.windows.input.keyboardnavigation.tabnavigation.aspx)与[KeyboardNavigationMode.None]( http://msdn.microsoft.com/en-us/library/system.windows.input.keyboardnavigationmode.aspx) – LPL 2012-04-18 20:45:13

+0

@LPL您应该将其添加为答案。这远比我的好。 – kevev22 2012-04-18 20:59:00

回答

3

在菜单上使用和KeyboardNavigationMode.None

<Menu KeyboardNavigation.TabNavigation="None"> 
+0

我有一个类似的问题,其中箭头键将从我的主窗口的部分导航到菜单,这完全不是预期的!这里的着陆向我介绍了KeyboardNavigation附加的属性,并且我设置了我的菜单的'KeyboardNavigation.DirectionNavigation =“None”'它修复了它。非常感谢LPL的回答,这也是解决我的问题的关键步骤 – aggieNick02 2013-04-15 18:16:08