Nel mio .net windows form (sto usando XP Pro SP3 e VS 2010), ho creato un menustrip. Nel menustrip ci sono diverse voci di menu, ognuna con un menu a discesa. Le voci di menu nei menu a discesa hanno ciascuna un'icona con del testo. Voglio rendere il menu più compatto riducendo lo spazio orizzontale tra l'icona e il testo. (Ho aggiunto una freccia rossa all'immagine per mostrare lo spazio di cui sto parlando).Diminuisci lo spazio tra l'icona di un elemento di menu e il suo testo
Finora, ho impostato l'imbottitura di tutti i menuitems a 0, ma questo sembra solo per influenzare la spaziatura verticale tra una voce di menu e l'altra.
voglio usare il sistemarendermode
per il MenuStrip (anche se il problema persiste, non importa quello che rendermode
che uso. Le icone del menu sono 16x16, e hanno la proprietà sizetofit
.
La cosa divertente è che lo stesso spazio è proprio come lo voglio nello menustrip
- l'icona è proprio accanto al testo
Questo rimuoverà completamente il margine dell'immagine, ma rimuove anche le immagini, voglio solo cambiare la larghezza del margine dell'immagine
For Each menuItem As ToolStripMenuItem In menu_main.Items
DirectCast(menuItem.DropDown, ToolStripDropDownMenu).ShowImageMargin = False
Next
Cosa posso fare qui?
Proprio come un a parte, non è una buona idea per personalizzare idiomi UI stabiliti in questo modo. So che Microsoft stessa fa tutto il tempo ma è molto meglio aderire agli standard dell'interfaccia utente del sistema operativo in merito. –
@Konrad Rudolph In generale, sono d'accordo con te. In effetti, mi piace molto il look XP dei menu, e preferisco lasciarlo in pace, ma il menu che VS mi dice è che il rendering del sistema non assomiglia ai menu a discesa di altri programmi. C'è quasi un quarto di pollice di spazio tra l'icona e il testo. Non è così altrove, ad eccezione di Microsoft Office. La spaziatura dovrebbe essere di circa un sedicesimo o un ottavo al massimo. – bgmCoder
Ah, ricordo: sembra come se fosse l'area per le checkbox (che può esistere nei menu). Ti sei assicurato che non ci sia un'opzione per disabilitare questo comportamento, piuttosto che modificare il disegno? Non ho lavorato con .NET in un bel po 'di tempo, non riesco a ricordare se questo esiste o no. –