W moim formularzu okna .net (używam XP Pro SP3 i VS 2010), utworzyłem menustrip. W menustripu znajduje się kilka pozycji menu, z których każda zawiera rozwijane menu. Pozycje menu w rozwijanych menu mają ikonę z pewnym tekstem. Chcę, aby menu było bardziej zwarte, zmniejszając poziomą przestrzeń między ikoną a tekstem. (Dodałem do zdjęcia czerwoną strzałkę, aby pokazać przestrzeń, o której mówię).Zmniejszanie odstępu między ikoną elementu menu a jego tekstem
tej pory mam ustawić dopełnienie wszystkich elementów menu na 0, ale to tylko wydaje się wpływać na pionowe odstępy między jednej pozycji menu i następny.
chcę użyć systemurendermode
się dla MenuStrip (choć problem nadal występuje bez względu na to co rendermode
używam. Ikony w menu są 16x16 i mają właściwość sizetofit
.
Zabawne jest to, że ten sam odstęp jest taki sam, jak chcę go w menustrip
- ikona znajduje się tuż obok tekstu:
Spowoduje to całkowite usunięcie marginesu obrazu, ale spowoduje to również usunięcie obrazów; chcę tylko zmienić szerokość marginesu obrazu:
For Each menuItem As ToolStripMenuItem In menu_main.Items
DirectCast(menuItem.DropDown, ToolStripDropDownMenu).ShowImageMargin = False
Next
Co mogę tutaj zrobić?
tak na marginesie, to nie jest to bardzo dobry pomysł, aby dostosować ustalone idiomów UI w ten sposób. Wiem, że sama Microsoft robi to cały czas, ale znacznie lepiej jest przestrzegać standardów UI systemu operacyjnego w tym zakresie. –
@Konrad Rudolph Ogólnie, zgadzam się z tobą. Naprawdę bardzo podoba mi się wygląd menu w XP i wolę pozostawić go w spokoju, ale menu, które mówi mi VS, to renderowanie systemu nie przypomina menu rozwijanych innych programów. Między ikoną a tekstem znajduje się prawie ćwierć cala przestrzeni. To nie jest tak nigdzie indziej poza biurem Microsoft. Odstępy powinny wynosić co najwyżej szesnaste lub ósme. – bgmCoder
Ach, pamiętam: brzmi to tak, jakby to był obszar pól wyboru (które mogą istnieć w menu). Czy upewniłeś się, że nie ma opcji wyłączenia tego zachowania, a nie modyfikowania rysunku? Nie pracowałem z .NET od dłuższego czasu, nie pamiętam, czy to istnieje, czy nie. –