您好,登錄后才能下訂單哦!
為了實現自定義的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;
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。