C#实现Menu和ContextMenu自定义风格及contextMenu自定义

2019-12-26 13:08:31王振洲

ContextMenu 类表示当用户在控件或窗体的特定区域上单击鼠标右键时会显示的快捷菜单,要想实现自定义的Menu和ContextMenu效果,大家可以通过派生ProfessionalColorTable类,下面小编把实现Menu和ContextMenu自定义风格及ContextMenu自定义给大家整理一下

为了实现自定义的Menu和ContextMenu效果,下面演示代码通过派生ProfessionalColorTable类,在自定义的类中重写ProfessionalColorTable类的相关联的属性,从而实现自定义菜单效果。

 

 
  1. using System.Drawing;  using System.Windows.Forms; 
  2. public class CustomToolStripColorTable : ProfessionalColorTable  { 
  3. /// <summary>  /// 主菜单项被点击后,展开的下拉菜单面板的边框 
  4. /// </summary>  public override Color MenuBorder 
  5. {  get 
  6. {  return Color.FromArgb(37, 37, 37); 
  7. }  } 
  8. /// <summary>  /// 鼠标移动到菜单项(主菜单及下拉菜单)时,下拉菜单项的边框 
  9. /// </summary>  public override Color MenuItemBorder 
  10. {  get 
  11. {  return Color.Transparent; 
  12. }  } 
  13. #region 顶级菜单被选中背景颜色  public override Color MenuItemSelectedGradientBegin 
  14. {  get 
  15. {  return Color.FromArgb(37, 37, 37); 
  16. }  } 
  17. public override Color MenuItemSelectedGradientEnd  { 
  18. get  { 
  19. return Color.FromArgb(37, 37, 37);  } 
  20. }  #endregion 
  21. #region 顶级菜单被按下是,菜单项背景色  public override Color MenuItemPressedGradientBegin 
  22. {  get 
  23. {  return Color.Black; 
  24. }  } 
  25. public override Color MenuItemPressedGradientMiddle  { 
  26. get  { 
  27. return Color.FromArgb(37, 37, 37);  } 
  28. }  public override Color MenuItemPressedGradientEnd 
  29. {  get 
  30. {  return Color.Black;