Я создал инструмент Windows Forms и добавил полосу меню с несколькими элементами и выпадающим меню. Все работает отлично, и когда я выбираю выпадающий пункт меню «Файл», он правильно расширяется. Но когда курсор покидает инструмент полосы меню пункт «Файл» к пунктам меню выпадающее, он меняет свой цвет автоматически белый, так что вы не можете больше читать белый текст:Элемент меню панели инструментов меняет свой цвет сам по себе, когда курсор покидает активированный элемент
Clicked menu strip with mouse cursor on dropdown items
у меня также был аналогичные проблемы с изменением цвета полосы меню до того, чтобы я уже определил Renderer:
class BlueRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
{
if (!e.Item.Selected)
{
base.OnRenderMenuItemBackground(e);
e.Item.BackColor = Color.MediumBlue;
}
else
{
Rectangle rc = new Rectangle(Point.Empty, e.Item.Size);
e.Graphics.FillRectangle(Brushes.Blue, rc);
e.Graphics.DrawRectangle(Pens.MediumBlue, 1, 0, rc.Width - 2, rc.Height - 1);
e.Item.BackColor = Color.MediumBlue;
base.OnRenderItemBackground(e);
e.Item.BackColor = Color.MediumBlue;
}
}
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
base.OnRenderItemText(e);
if (!e.Item.Selected)
{
e.Item.ForeColor = SystemColors.ControlLightLight;
}
else
{
e.Item.ForeColor = SystemColors.ControlLightLight;
}
}
}
Я думаю, что я должен изменить еще одно свойство или поведение в рендерер, но я даже не знаю, какой из них и как его изменить. Пожалуйста, помогите мне просто сохранить цвет деталя в синем/среднем синем, когда курсор мыши покинет этот элемент.
Приветствие
Florian