为了实现自定义的Menu和ContextMenu效果,可以通过派生ProfessionalColorTable类,在自定义类中通过重写ProfessionalColorTable类的相关属性,产生自定义菜单效果。
为嵊州等地区用户提供了全套网页设计制作服务,及嵊州网站建设行业解决方案。主营业务为成都网站建设、成都网站制作、嵊州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!using System.Drawing; using System.Windows.Forms; public class CustomToolStripColorTable : ProfessionalColorTable { ////// 主菜单项被点击后,展开的下拉菜单面板的边框 /// public override Color MenuBorder { get { return Color.FromArgb(37, 37, 37); } } ////// 鼠标移动到菜单项(主菜单及下拉菜单)时,下拉菜单项的边框 /// public override Color MenuItemBorder { get { return Color.Transparent; } } #region 顶级菜单被选中背景颜色 public override Color MenuItemSelectedGradientBegin { get { return Color.FromArgb(37, 37, 37); } } public override Color MenuItemSelectedGradientEnd { get { return Color.FromArgb(37, 37, 37); } } #endregion #region 顶级菜单被按下是,菜单项背景色 public override Color MenuItemPressedGradientBegin { get { return Color.Black; } } public override Color MenuItemPressedGradientMiddle { get { return Color.FromArgb(37, 37, 37); } } public override Color MenuItemPressedGradientEnd { get { return Color.Black; } } #endregion ////// 菜单项被选中时的颜色 /// public override Color MenuItemSelected { get { return Color.FromArgb(37, 37, 37); } } #region 下拉菜单面板背景设置(不包括下拉菜单项) //下拉菜单面板背景一共分为2个部分,左边为图像区域,右侧为文本区域,需要分别设置 //ToolStripDropDownBackground设置文本部分的背景色 public override Color ToolStripDropDownBackground { get { return Color.Black; } } //以ImageMarginGradient开头的3个设置的是图像部分的背景色,begin->end是从左到右的顺序 public override Color ImageMarginGradientBegin { get { return Color.Black; } } public override Color ImageMarginGradientMiddle { get { return Color.Black; } } public override Color ImageMarginGradientEnd { get { return Color.Black; } } #endregion }
然后对需要实现自定义风格的菜单(如:contextMenuStrip1)应用如下代码:
contextMenuStrip1.RenderMode = ToolStripRenderMode.Professional; contextMenuStrip1.Renderer = new ToolStripProfessionalRenderer(new CustomToolStripColorTable());
1.菜单项点击之后,整个菜单项及下拉菜单项边框的颜色
publicoverrideColor MenuBorder
{
get
{
returnColor.Red;
}
}
2.鼠标移动到菜单项上,菜单项边框的颜色(包括下拉菜单项)
publicoverrideColor MenuItemBorder
{
get
{
returnColor.Red;
}
}
3、菜单项被按下时,菜单项背景渐变开始的颜色
publicoverrideColor MenuItemPressedGradientBegin
{
get
{
returnColor.Red;
}
}
4.菜单项被按下时,菜单项背景渐变结束的颜色
publicoverrideColor MenuItemPressedGradientEnd
{
get
{
returnColor.Red;
}
}
5、下拉菜单被选中的颜色
publicoverrideColor MenuItemSelected
{
get
{
returnColor.Red;
}
}
6、主菜单项被选中(而非按下),渐变开始的颜色
publicoverrideColor MenuItemSelectedGradientBegin
{
get
{
returnColor.Red;
}
}
7、主菜单栏渐变开始的颜色
publicoverrideColor MenuStripGradientBegin
{
get
{
returnColor.Red;
}
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文标题:c#Menu和ContextMenu自定义风格简单实现-创新互联
本文地址:http://lswzjz.com/article/cojoch.html