Je colorie un menustrip pour correspondre au thème de mon application. Cependant, chaque fois que je le tente, j'obtiens cette étrange anomalie visuelle à gauche des séparateurs de panneaux (le rectangle blanc). Il y a aussi un positionnement étrange des cases à cocher (possiblement liées?).Anomalies visuelles C# MenuStrip Panel
Quelle est la cause, et comment puis-je l'enlever?
Merci
code Exemple:
private Color MainColor = Color.FromArgb(39, 40, 34);
public class MenuStripRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
{
Rectangle rect = new Rectangle(Point.Empty, e.Item.Size);
if (e.Item.Selected)
{
Color color = Color.FromArgb(24, 25, 19);
using (SolidBrush brush = new SolidBrush(color))
e.Graphics.FillRectangle(brush, rect);
}
else
{
using (SolidBrush brush = new SolidBrush(MainColor))
e.Graphics.FillRectangle(brush, rect);
}
}
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
e.Item.ForeColor = Color.White;
base.OnRenderItemText(e);
}
protected override void OnRenderSeparator(ToolStripSeparatorRenderEventArgs e)
{
base.OnRenderSeparator(e);
}
public MenuStripRenderer() : base(new MenuStripColors()) { }
}
public class MenuStripColors : ProfessionalColorTable
{
public override Color ToolStripDropDownBackground
{
get { return MainColor; }
}
public override Color ToolStripContentPanelGradientBegin
{
get { return MainColor; }
}
public override Color ToolStripContentPanelGradientEnd
{
get { return MainColor; }
}
public override Color MenuItemSelected
{
get { return MainColor; }
}
public override Color MenuItemBorder
{
get { return MainColor; }
}
public override Color MenuItemSelectedGradientBegin
{
get { return MainColor; }
}
public override Color MenuItemSelectedGradientEnd
{
get { return MainColor; }
}
public override Color MenuBorder
{
get { return MainColor; }
}
}
// In the forms Load()
this.menuStrip1.Renderer = new MenuStripRenderer();
this.menuStrip1.BackColor = MainColor;
this.menuStrip1.ForeColor = Color.White;
Vous aviez raison concernant le rectangle blanc! Merci beaucoup. Je vais jouer avec mes paramètres DPI et voir ce qui se passe. Je cours sur un moniteur 4k, donc j'ai une taille d'environ 225% ou quelque chose comme ça – PersuitOfPerfection