- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我添加了我的菜单项快捷键,但它们排列不当。
我需要这样做:
最佳答案
啊,我想我终于想出了如何做到这一点(很长一段时间以来,你是如何获得这两个不同的屏幕截图一直让我感到困惑......)。事实证明,您可以通过两种方式指示 Windows 在下拉菜单中对齐快捷键。
第一种(可能也是最标准的)方法是插入 制表符 ( \t
) 在与菜单文本对应的字符串中。这会产生原始问题中显示的底部示例,其中所有标识符都左对齐并且有些悬垂。这是几乎所有 Microsoft 应用程序的标准,也是我知道几分钟前还存在的唯一选项。
示例资源字符串:&Print…\tCtrl+P
第二种方法是替换那个\t
使用 的转义序列\a
在资源字符串中(是的,奇怪的是通常会指示 alert bell )。这会导致 Windows 右对齐菜单中的所有快捷键序列,从而生成第一个屏幕截图中所示的示例。这确实产生了一个更有效地使用屏幕空间的菜单(它更小),但这是以每个快捷键序列在其左侧边距下整齐对齐为代价的,我认为这使可读性稍微容易一些。
示例资源字符串:&Print…\aCtrl+P
因此,如果您希望您的菜单看起来像原始问题中的第二个示例(是的,我已将样本向后排列困惑。抱歉),您需要使用制表符( \t
)在包含菜单项文本字符串的资源文件。
奇怪的是,您声称正在使用 .NET WinForms,它会自动处理所有这些(使您免于弄乱资源文件的痛苦)。我知道它会插入制表符,而且我见过它生成的所有菜单看起来都像你的第二个例子。
最好的办法是将菜单切换到旧的 MainMenu
早期版本的 .NET Framework 中包含的控件。 (为此,您可能必须右键单击“工具箱”并手动添加控件——在更高版本的 Visual Studio 中默认不存在该控件。)这将确保您看到您期望的对齐行为,与记事本等所有标准 Windows 应用程序一致。它还生成看起来像原生操作系统菜单的菜单(在 Vista 和 7 中,它们被涂成蓝色)而不是由 MenuStrip
生成的看起来很业余的所有者绘制的菜单。在现代版本的 Windows 中完全不合适的控件。
微软 official documentation确实确认 MainMenu
control仍支持将来使用,因此无需担心在您的应用中使用它。我强烈建议大家改用这个:
Although MenuStrip replaces and adds functionality to the MainMenu control of previous versions, MainMenu is retained for both backward compatibility and future use if you choose.
关于winforms - 如何右对齐菜单中的快捷键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4975077/
我是一名优秀的程序员,十分优秀!