Stack Overflow на русском Asked by Cordis on December 22, 2021
Я пытаюсь кастомизировать ContextMenuStrip.
В итоге смог самостоятельно зарендерить toolStripSeparator, поменять цвет при наведении и ещё по мелочам.
Вот то, что вышло
Осталась эта белая полоска слева. Она является частью 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); } }
}
Убрались все отступы. Кроме полоски.
Сделать это возможно. Например в дискорде
Логичный вопрос – что это за полоска и как её убрать?
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP