当我在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| |
我一直试图找出如何改变这一点,但我找不到任何东西。我已经尝试了像HorizontalAlignment,HorizontalContentAlignment这样的东西,但这不起作用。
另外,我注意到这个菜单方向仅适用于Windows 7,而不适用于Windows XP。最后,此菜单方向也在Visual Studio 2010 Express中!
如果你们中的任何人能够给我一个答案或搜索方向,我将非常感激。
答案 0 :(得分:4)
这似乎是您本地Windows计算机的配置问题(检查此行为是否也出现在其他程序中)。如果是,您有两种可能来解决这个问题:
选择1
您的菜单应该左对齐。
选择2
答案 1 :(得分:0)
您可以尝试在this MSDN page处查看FlowDirection
信息:
<MenuItem FlowDirection="LeftToRight">
</MenuItem>
答案 2 :(得分:0)
尝试像这样声明菜单的itemsPanelTemplate -
<Menu>
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel HorizontalAlignment="Left"/>
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<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>
答案 3 :(得分:0)
您必须更改注册表中的条目。
解决方案发布在这里: WPF Sub-MenuItem Opening on the Left Instead of the Right
答案 4 :(得分:0)
这种情况发生在带触摸屏的机器上。 在开始菜单上单击:
平板电脑设置
打开&#34;其他&#34;标签
改变&#34;右撇子&#34;到&#34;左撇子&#34;