2012-02-08 16 views
6

之間的空間在我的.NET Windows窗體(我使用XP專業版SP3和VS 2010),我創建了一個MenuStrip中。在菜單欄中有幾個菜單項,每個菜單項都有一個下拉菜單。下拉菜單中的菜單項每個都有一個帶有文本的圖標。我想通過減小圖標和文本之間的水平間距來使菜單更加緊湊。 (我在圖片上添加了一個紅色箭頭以顯示我正在談論的空間)。減少菜單項的圖標並將其Text

enter image description here

到目前爲止,我已經設置所有的菜單項爲0的填充,但這似乎隻影響到一個菜單項和下之間的垂直間距。

我想用系統rendermode的MenuStrip中(雖然這個問題不管我用什麼rendermode。在菜單中的圖標是16×16,並且具有這樣的性質仍然存在sizetofit

有趣的是,這非常相同的間隔就是我希望它在menustrip的方式 - 的圖標旁邊的文本

這將徹底刪除的圖像邊緣,但它也消除了圖像,我只是想改變寬度。的圖片邊距。

For Each menuItem As ToolStripMenuItem In menu_main.Items 
     DirectCast(menuItem.DropDown, ToolStripDropDownMenu).ShowImageMargin = False 
    Next 

我能做些什麼嗎?

+0

正如順便說一句,這不是一個很好的主意,定製UI建立成語這樣。我知道微軟本身一直在做這件事,但在這方面堅持操作系統的用戶界面標準要好得多。 – 2012-02-08 20:05:43

+0

@Konrad Rudolph總的來說,我同意你的看法。其實,我真的很喜歡我的XP對菜單的樣子,寧可不要管它,但是VS告訴我的菜單是系統自帶的渲染看起來並不像其他程序的下拉菜單。圖標和文字之間有近四分之一英寸的空間。除了微軟辦公室以外,其他地方都不是這樣。間距應該是大約十六分之一,或者最多八分之一。 – bgmCoder 2012-02-08 20:13:44

+0

啊,我還記得:這聽起來好像是爲複選框的區域(可在菜單中存在)。你確定沒有禁止這種行爲的選項,而不是修改圖紙嗎?我在一段時間內沒有用過.NET,我不記得這是否存在。 – 2012-02-08 20:15:56

回答

2

所以,這是有點欺騙,也可能不會看起來乾淨,只要你願意,但我可以通過使圖像具有文字做出來,然後在設計用於設置以下屬性菜單項:

DisplayStyle = Image

ImageScaling = None

enter image description here

+0

我給你我的創造力+1。這是一個真正的解決方案!但是,它消除了菜單項中動態文本的可能性,並且很難將圖標重用於其他用途。並不是我所希望的,而是一個令人欽佩的解決方案。 – bgmCoder 2014-06-17 03:58:24