為了實現自定義的Menu和ContextMenu效果,可以通過派生ProfessionalColorTable類,在自定義類中通過重寫ProfessionalColorTable類的相關屬性,產生自定義菜單效果。
公司主營業務:成都網站建設、網站建設、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。創新互聯是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創新互聯推出北流免費做網站回饋大家。
using System.Drawing; using System.Windows.Forms; public class CustomToolStripColorTable : ProfessionalColorTable { /// <summary> /// 主菜單項被點擊后,展開的下拉菜單面板的邊框 /// </summary> public override Color MenuBorder { get { return Color.FromArgb(37, 37, 37); } } /// <summary> /// 鼠標移動到菜單項(主菜單及下拉菜單)時,下拉菜單項的邊框 /// </summary> 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 /// <summary> /// 菜單項被選中時的顏色 /// </summary> 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;
}
}
新聞標題:c#Menu和ContextMenu自定義風格簡單實現
本文來源:http://m.newbst.com/article6/jeigig.html
成都網站建設公司_創新互聯,為您提供網站制作、網站策劃、商城網站、品牌網站設計、網站營銷、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯