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

标签 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>

菜单折叠起来,菜单的边缘与顶部菜单项(在本例中为文件)的边缘右对齐。这意味着菜单看起来像这样:

                  _____________________________________________
__________________|____|File|_____________________________-|_|X|
|   | Open            Ctrl+O|                                  |
|   | Save            Ctrl+S|                                  |
|   | Save As.. Ctrl+Shift+S|                                  |
|   | Exit            Alt+F4|                                  |

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

我希望它看起来像这样:

_______________________________________________________________
|File|____________________________________________________|-_X|
|   | Open            Ctrl+O|                                 |
|   | Save            Ctrl+S|                                 |
|   | Save As.. Ctrl+Shift+S|                                 |
|   | Exit            Alt+F4|                                 |

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

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

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

最佳答案

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

选择 1

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

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

选择 2

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

关于wpf - 如何更改菜单栏中菜单项的方向/位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5687086/

相关文章:

.net - 在 Windows 应用程序中格式化标签内的文本

wpf - 动画边距/厚度

c# - 如何禁止验证错误时的自动数据绑定(bind)

c# - WPF 中的 float 项目

c# - 条件 XAML (WPF)

选项卡更改时的 WPF 组合框文本绑定(bind)问题

c# - 如何在 XAML 中访问我的 ViewModel 的 DependencyProperties?

c# - 打印用户控件在顶部和左侧切掉半英寸

c# - 如何获取 WPF DataGrid 单元格的位置?

WPF:在执行操作之前等待 Storyboard动画完成的正确方法是什么