啊,我想我终于想出了如何做到这一点(很长一段时间以来我一直在困惑你如何获得两个不同的截图......).事实证明,有两种方法可以指示Windows在下拉菜单中对齐快捷键.
第一种(也可能是最标准的)方法是在与菜单文本对应的字符串中插入制表符(\t\n).这将生成原始问题中显示的底部示例,即所有标识符左对齐且稍微悬垂的示例.这是几乎所有Microsoft应用程序的标准,也是我知道的唯一选项,直到几分钟前才存在.
示例资源字符串: &Print…\tCtrl+P
第二种方法是在资源字符串中替换该\t转义序列\a(是的,奇怪的是通常表示警报铃声).这会导致Windows 右对齐菜单中的所有快捷键序列,从而生成第一个屏幕截图中所示的示例.这确实产生了一个更有效地使用屏幕空间的菜单(它更小),但这是以每个快捷键序列沿左手边缘整齐对齐为代价的,我认为这使得可读性稍微容易一些.
示例资源字符串: &Print…\aCtrl+P
因此,如果您希望您的菜单看起来像原始问题中的第二个示例(是的,我会混淆地向后排列我的样本.抱歉),您需要使用\t包含资源文件中的制表符()来划分快捷键序列.您的菜单项文本字符串.
奇怪的是,您声称使用的是.NET WinForms,它可以自动处理所有这些(使您免于弄乱资源文件的麻烦).我知道它插入制表符的事实,我见过它生成的所有菜单都看起来像你的第二个例子.
最好的办法是将菜单切换到MainMenu早期版本的.NET Framework中包含的旧控件.(为此,您可能必须右键单击工具箱并手动添加控件 - 默认情况下,在Visual Studio的更高版本中不存在.)这将确保您看到预期的对齐行为,与记事本等所有标准Windows应用程序一致.它还生成看起来像本机操作系统菜单的菜单(在Vista和7中,它们被涂成蓝色)而不是由MenuStrip控件生成的业余外观所有者绘制的菜单,这些菜单在现代版本的Windows中完全不合适.
微软的官方文档 确实证实该MainMenu控件仍然支持将来使用,所以没有理由担心在你的应用程序中使用它.我强烈建议每个人都使用它:
虽然MenuStrip替换并添加了以前版本的MainMenu控件的功能,但是如果您选择,MainMenu将保留用于向后兼容和将来使用.
| 归档时间: |
|
| 查看次数: |
2642 次 |
| 最近记录: |