Ни к чему не принадлежащая полоска ContextMenu c#

Я пытаюсь кастомизировать ContextMenuStrip.

В итоге смог самостоятельно зарендерить toolStripSeparator, поменять цвет при наведении и ещё по мелочам. Вот то, что вышло

мой ContextMenuStrip

Осталась эта белая полоска слева. Она является частью ImageMargin, т.е. частью места под картинку, и как убрать её - не понятно(а если убрать imageMargin, то полоска остаётся)

Дальше идут нерабочие способы, можно и не читать, если не хочется.

Главный вопрос - что это за полоска и как её убрать?

(даже все способы вместе не сработали :< )

Пытался поменять toolStripMenuItem.Margin, BackColor, contextMenu.BackColor, но не помогло.

Попытался самостоятельно поменять цвет через ToolStripProfessionalRenderer

contextMenu.Renderer = new MyMenuRenderer();
public class MyMenuRenderer : ToolStripProfessionalRenderer
{
    public MyMenuRenderer() : base(new BrowserColors()) { }
}
public class BrowserColors : ProfessionalColorTable
{
    public override Color ImageMarginGradientBegin { get { return Color.FromArgb(255, 0, 0); } }
    // ImageMarginGradientMiddle и ImageMarginGradientEnd, как оказалось, ни на что не влияют
}

Но при наведении на элемент это полоска оставалась видна. После этого я попытался сделать так

contextMenu.ShowImageMargin = false;
contextMenu.ShowCheckMargin = false;

Полоска покрасилась в цвет contextMenu, но не исчезла.
(И как это так получается, что если убираешь imageMargin, остаётся imageMargin?)

Даже так попытался

public class MyContextMenuStrip : ContextMenuStrip
{
    protected override Padding DefaultPadding { get { return new Padding(0, 0, 0, 1); } }
}

Убрались все отступы. Кроме полоски.

введите сюда описание изображения

Сделать это возможно. Например в дискорде

contextmenu discord

Логичный вопрос - что это за полоска и как её убрать?


Ответы (0 шт):