c# - WPF (.Net5) 下拉菜单 - 菜单项未与主菜单对齐
问题描述
我在主网格的第一行创建了一个带有菜单栏的简单 WPF 应用程序。我在网格中添加了几个菜单项:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<Menu x:Name="MainMenuBar" Grid.Row="0" HorizontalContentAlignment="Left">
<MenuItem Header="_File" HorizontalContentAlignment="Left">
<MenuItem x:Name="NewProjectMenuItem"
Header="_New Project"
InputGestureText="Ctrl+N"
Click="NewProjectMenuItem_Click"
HorizontalAlignment="Left"/>
<MenuItem x:Name="OpenProjectMenuItem"
Header="_Open Project"
InputGestureText="Ctrl+O"
Click="OpenProjectMenuItem_Click"
HorizontalAlignment="Left"/>
<MenuItem x:Name="CloseProjectMenuItem"
Header="_Close Project"
Click="CloseProjectMenuItem_Click"
HorizontalAlignment="Left"/>
<Separator/>
<MenuItem x:Name="SaveProjectMenuItem"
Header="_Save Project"
InputGestureText="Ctrl+S"
Click="SaveProjectMenuItem_Click"
HorizontalAlignment="Left"/>
</MenuItem>
<MenuItem Header="_Edit" HorizontalContentAlignment="Left">
<MenuItem x:Name="ToggleIncludeInBuild"
Header="Toggle Include in _Build"
InputGestureText="Shift+F1"
Click="ToggleIncludeInBuild_Click"
HorizontalAlignment="Left"/>
</MenuItem>
</Menu>
<Grid x:Name="ContenGrid" Grid.Row="1"></Grid>
<StatusBar x:Name="StatusBar" Grid.Row="2"></StatusBar>
</Grid>
当我单击“文件”或“编辑”菜单项时,子菜单项与下拉菜单在 Windows 窗体应用程序中的正常行为方式不一致。它们与子菜单项的右边缘与父菜单的右边缘对齐。
解决方案
我有一个类似的问题。发现它实际上是 Windows 设置而不是 WPF 设置。我在一台笔记本电脑上编程,它有一个默认为右手菜单模式的触摸屏。如果您注意到 Visual Studio 也在这样做,这不是代码问题,而是 Windows 10 设置。
推荐阅读
- google-api - 对 Google Ads API 的所有请求的内部服务器错误 500
- java - 非事务性 jmsTemplate 等待会话结束
- sql - 泛化查询以获取给定范围的所有数据
- hive - 如何在 AWS Athena/Presto 中实现 Hive 的按位左移?
- html - 两个不同字体大小的内衬按钮?
- regex - 如何限制这个正则表达式只允许 200 个字符?
- kubernetes - openshift 中的 Prometheus 警报管理器配置
- angular - Angular 6 项目中来自three.js 错误的VRMLLoader
- vhdl - 我把扰频器和解扰器模块分别放在vhdl中,但解扰器的结果与扰频器的输入不一样
- pandas - 在预处理时,我有大量具有 nan 值的列!用“零”或“N”替换所有 nan 列的任何可能方法