Ich habe ein Windows Forms Tool erstellt und eine Menüleiste mit mehreren Elementen und einem Dropdown-Menü hinzugefügt. Alles funktioniert gut und wenn ich den Dropdown-Menü-Eintrag "Datei" auswähle, wird es korrekt erweitert. Aber wenn die Cursor die Werkzeugleiste des Menüpunkt „Datei“ auf die Drop-Down-Menüpunkte verlassen, ändert es seine Farbe automatisch auf weiß, so dass Sie nicht den weißen Text nicht mehr lesen können:Werkzeugleiste Menüpunkt ändert seine Farbe selbst, wenn der Cursor aktiviert Element
Clicked menu strip with mouse cursor on dropdown items
ich hatte auch ähnliche Probleme mit Farbänderungen des Menüleiste vor, so dass ich bereits definiert einen 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;
}
}
}
ich glaube, ich habe eine andere Eigenschaft oder Verhalten in Renderer ändern, aber ich Ich weiß nicht einmal welche und wie ich sie ändern kann. Bitte helfen Sie mir, die Objektfarbe einfach blau/mittelblau zu halten, wenn der Mauszeiger dieses Element verlässt.
Prost
Florian