如何更改菜单栏中菜单项的方向/位置

Men*_*ijk 3 wpf wpf-controls

当我像这样在 XAML 中创建菜单时:

<Menu>
    <MenuItem Height="auto" Header="{x:Static str:StringResources.File}">
        <MenuItem Header="{x:Static str:StringResources.Open}"
                  InputGestureText="Ctrl+O" 
                  Command="{Binding OpenFileCommand}"/>
        <MenuItem Header="{x:Static str:StringResources.Save}" 
                  InputGestureText="Ctrl+S" 
                  Command="{Binding SaveFileCommand}"/>
        <MenuItem Header="{x:Static str:StringResources.SaveAs}" 
                  InputGestureText="Ctrl+Shift+S" 
                  Command="{Binding SaveAsFileCommand}"/>
        <MenuItem Header="{x:Static str:StringResources.Exit}"
                  InputGestureText="Alt+F4"
                  Click="MenuItemExit_Click"
                  />
    </MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)

菜单折叠出来,菜单的边缘与顶部菜单项的边缘右对齐(在这种情况下是文件)。这意味着菜单如下所示:

                  _____________________________________________
__________________|____|File|_____________________________-|_|X|
|   | Open            Ctrl+O|                                  |
|   | Save            Ctrl+S|                                  |
|   | Save As.. Ctrl+Shift+S|                                  |
|   | Exit            Alt+F4|                                  |
Run Code Online (Sandbox Code Playgroud)

这看起来很难看,尤其是在非最大化窗口上,其中折叠菜单将大部分绘制在窗口之外。

我希望它看起来像这样:

_______________________________________________________________
|File|____________________________________________________|-_X|
|   | Open            Ctrl+O|                                 |
|   | Save            Ctrl+S|                                 |
|   | Save As.. Ctrl+Shift+S|                                 |
|   | Exit            Alt+F4|                                 |
Run Code Online (Sandbox Code Playgroud)

我一直试图找出如何改变这一点,但我找不到任何东西。我尝试过 Horizo​​ntalAlignment、Horizo​​ntalContentAlignment 之类的东西,但这不起作用。

此外,我注意到此菜单方向仅适用于 Windows 7,而不适用于 Windows XP。最后,这个菜单方向也在 Visual Studio 2010 Express 中!

如果你们中的任何人可以为我提供答案或搜索方向,我将不胜感激。

小智 5

这似乎是您本地 Windows 机器的配置问题(检查此行为是否也出现在其他程序中)。如果是,您有两种可能来解决这个问题:

选择 1

  • 赢+R
  • 输入“shell:::{80F3F1D5-FECA-45F3-BC32-752C152E456E}”,按确定
  • 在“其他”下将右手改为左手,按确定

您的菜单应该左对齐打开。

选择2

  • 打开您的注册表并更改以下条目:[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\MenuDropAlignment] 为“0”
  • 重启