回答
他們是 '正確的' 對齊,你可以看到。 (沒有雙關語意)。
這是一個菜單的默認行爲。您需要自定義繪圖才能以不同方式進行繪製。
每個操作系統都有其特殊的外觀和感覺,我想你必須有很好的理由不去承認Windows上的每個其他應用程序的外觀。我想你會放棄這個問題,或者將延長OwnerDrawn
項目的菜單。
Here是關於這個問題的矯枉過正的文章。
嗯,我想我終於想出瞭如何做到這一點(它讓我困惑了很長一段時間你怎麼得到兩個不同的截圖......)。原來有兩個方式,您可以指示Windows對齊下拉菜單中的快捷鍵。
第一個(可能是最標準的)方法是插入對應的菜單文本字符串中製表符(\t
)。這產生了原始問題中顯示的底部示例,其中所有標識符都是左對齊的,稍微有些懸垂。這是幾乎所有微軟應用程序的標準,也是我在幾分鐘前才知道的唯一選擇。
樣品資源字符串:
&Print…\tCtrl+P
的第二種方式是,以取代\t
轉義序列與\a
在資源字符串(是的,奇怪的是會通常表示alert bell)。這導致Windows 右對齊菜單中的所有快捷鍵序列,產生第一個屏幕截圖中所示的示例。這確實產生了一個更有效地使用屏幕空間的菜單(它更小),但是這是以每個快捷鍵序列沿左邊距排列整齊對齊爲代價的,我認爲這使得可讀性稍微容易一些。
樣品資源字符串:
&Print…\aCtrl+P
所以,如果你希望你的菜單看起來像你原來的問題的秒例子(是的,我容易混淆安排我的樣品倒退了。對不起),您需要在包含菜單項文本字符串的資源文件中用製表符(\t
)分隔快捷鍵序列。
奇怪的是,你聲稱使用.NET WinForms,它會自動處理所有這些(使你免受與資源文件混淆的痛苦)。我知道它插入了製表符,而且我見過的所有菜單都生成了做看起來就像你的第二個例子。
最好的辦法是將菜單切換到早期版本的.NET Framework附帶的舊MainMenu
控件。 (要做到這一點,您可能必須右鍵單擊工具箱並手動添加控件—它在Visual Studio的更高版本中默認不存在)。這將確保您看到您期望的對齊行爲,與記事本等所有標準Windows應用程序一致。它還生成看起來像本地操作系統菜單(在Vista和7中,它們被塗成藍色)的菜單,而不是由MenuStrip
控件生成的業餘外觀的自繪菜單,這些菜單在現代版本中完全不適用視窗。
微軟official documentation確實確認該MainMenu
control仍然支持以備將來使用,因此沒有理由在您的應用程序使用它害怕。我高度推薦大家用這個來代替:
雖然MenuStrip中替換和添加功能,對以前版本的MainMenu控件,MainMenu的是保留向後兼容,如果您選擇將來使用。
- 1. 如何設置菜單快捷鍵?
- 2. 菜單快捷鍵範圍
- 3. 帶鍵盤快捷鍵的菜單
- 4. 菜單的鍵盤序列快捷鍵
- 5. Android中菜單的字母快捷鍵
- 6. 鍵盤快捷鍵爲WPF菜單項
- 7. xcode功能菜單鍵盤快捷鍵
- 8. 如何在PyQt中正確對齊右鍵單擊上下文菜單?
- 9. 在Tkinter菜單中對齊快捷方式信息
- 10. IE9的CSS不對齊菜單正確
- 11. 角度材質對齊菜單正確
- 12. 讓CSS菜單正確對齊
- 13. 下拉菜單沒有正確對齊
- 14. CSS菜單不對齊正確
- 15. 菜單將不正確對齊
- 16. 水平菜單項未正確對齊
- 17. Css - 子菜單未正確對齊
- 18. UL/LI CSS菜單未正確對齊
- 19. CSS下拉菜單 - 不對齊正確
- 20. 下拉菜單沒有正確對齊
- 21. CSS菜單未正確對齊
- 22. 需要正確對齊菜單按鈕
- 23. 自定義菜單快捷鍵
- 24. Winform快捷鍵子菜單項
- 25. Flash自定義右鍵快捷菜單
- 26. PyQt上下文菜單快捷鍵
- 27. Visual Studio上下文菜單快捷鍵
- 28. 如何在intellij中禁用Alt + [F,E,V,...]菜單快捷鍵?
- 29. 如何正確處理快捷鍵和鍵盤事件?
- 30. Excel菜單中的鍵盤快捷鍵CommandBar
使用AppendMenu(...,「&Open \ aCtrl + O」)時,a(警鈴)不起作用。 ,你知道如何使用'AppendMenu'這個東西(不使用資源文件)嗎? – dns 2014-01-20 10:41:35