在MDI應用程序中,當MDI子窗體最大化時,窗體的圖標將用作上下文菜單圖標,顯示在父窗體左側MenuStrip中。當我將MDI應用程序中使用的表單的圖標設置爲大於16x16的東西(我使用的是32x32)時,該圖標將以未縮放的方式繪製,並調整菜單的大小以適合其大小。請注意,如果ICO文件也包含該圖標的16x16版本,則其工作正常。縮放父窗體的MenuStrip中最大化的MDI子項使用的圖標
下面創建一個基本的應用程序,顯示的行爲:
- 創建一個新的解決方案和WinForms項目
- 變化Form1的的IsMdiContainer到
true
- 添加
MenuStrip
到Form1 - 創建一個新的表格稱之爲
MdiChildForm
- 設置
MdiChildForm
的圖標爲32x32的ICO文件,here's one I prepared earlier 在
Form1
添加菜單項,雙擊它來創建Click
事件處理程序,並添加以下內容:var child = new MdiChildForm(); child.MdiParent = this; child.Show(); child.WindowState = FormWindowState.Maximized;
的建立和運行,單擊菜單項
請注意,再次單擊菜單項時,該圖標將更改爲默認值,這在this question中進行了說明,此處不是問題。
我很確定這將被描述爲'按設計',但它仍然令人討厭。有沒有辦法強制上下文菜單圖標縮小,調整源圖標的大小?我可能也會這樣做,但是我在做了一些內碼捕捉。
+1這看起來像一個性感解決方案的開始,感謝分享:) – 2011-05-25 23:18:25