J’ajoute un MenuSsortingp
dans mon application et ajoute ManagerRenderMode
en Render Mode
. Le problème est avec l’apparence, regardez les abats. Regardez ces deux photos, je veux changer la bordure blanche des sous-menus en transparent, ce rectangle bleu qui apparaît en gris pour le menu et pour le sous-menu en gris foncé (et sa bordure bleu foncé) et la bordure blanche du menu quand est sélectionné. Comment puis-je faire ceci ?
BackColor
est: 36; 36; 36
36; 36; 36
36; 36; 36
et ForeColor
est LightGray
.
J’ai réussi à changer le rectangle bleu, le rectangle blanc lorsque l’option est sélectionnée, le rectangle bleu lorsque je sélectionne une option de sous-menus, mais je ne sais pas comment modifier la white border
, aidez-moi s’il vous plaît.
Voici le code jusqu’à présent …
Color culoare = Color.FromArgb(20, 20, 20); Color culoare1 = Color.FromArgb(36, 36, 36); public override Color MenuItemSelected { get { return culoare; } } public override Color MenuItemBorder { get { return culoare; } } public override Color MenuItemSelectedGradientBegin { get { return culoare; } } public override Color MenuItemSelectedGradientEnd { get { return culoare; } } public override Color MenuItemPressedGradientBegin { get { return culoare; } } public override Color MenuItemPressedGradientEnd { get { return culoare; } } public override Color MenuBorder { get { return culoare; } }
Vous pouvez le faire en créant votre propre ColorTable et en remplaçant les propriétés pour lesquelles vous souhaitez modifier la couleur:
public class TestColorTable : ProfessionalColorTable { public override Color MenuItemSelected { get { return Color.Red; } } public override Color MenuBorder //added for changing the menu border { get { return Color.Green; } } }
Vous l’utiliseriez comme ceci:
private void Form1_Load(object sender, EventArgs e) { menuSsortingp1.Renderer = new ToolSsortingpProfessionalRenderer(new TestColorTable()); }
Votre approche est incorrecte. Vous ne stylisez pas les menus et les bandes d’outils à l’aide de prevolor / backcolor.
Jetez un coup d’oeil à ToolSsortingpProfessionalRenderer
Exemple d’utilisation de cette
public class MyToolSsortingpRenderer : ToolSsortingpProfessionalRenderer { /* override styling/drawing here */ } MenuSsortingp ssortingp = new MenuSsortingp(); ssortingp.Renderer = new MyToolSsortingpRenderer(); //this will set RenderMode to "Custom"
Pensez à utiliser cet exemple sur CodeProject en tant que recherche.
Mieux encore, VBForums en a des tonnes, déjà implémentées (dans les styles habituels Luna, Office, Windows, Visual Studio!)
Si vous voulez simplement changer les couleurs … utilisez la réponse de Pondidum! Cela implique moins de travail!