protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) { if (renderer is ToolStripProfessionalRenderer) { Color text = GetThemeColor("ToolStripItem.ForeColor"); Color back = GetThemeColor("ToolStripItem.BackColor"); Color border = GetThemeColor("ToolStripItem.BorderColor"); if (e.Item.Enabled) { if (!e.Item.IsOnDropDown && e.Item.Selected) { Rectangle rect = new Rectangle(0, 0, e.Item.Width, e.Item.Height); Rectangle rect2 = new Rectangle(1, 1, e.Item.Width - 2, e.Item.Height - 2); LinearGradientBrush b = new LinearGradientBrush(rect, back == Color.Empty ? DockDrawHelper.ColorSelectedBG_White : back, back == Color.Empty ? DockDrawHelper.ColorSelectedBG_Blue : back, LinearGradientMode.Vertical); e.Graphics.FillRectangle(b, rect); Rectangle rect3 = new Rectangle(rect2.Left - 1, rect2.Top - 1, rect2.Width + 1, rect2.Height + 1); Rectangle rect4 = new Rectangle(rect3.Left + 1, rect3.Top + 1, rect3.Width - 2, rect3.Height - 2); e.Graphics.DrawRectangle(new Pen(border == Color.Empty ? DockDrawHelper.ColorSelectedBG_Border : border), rect3); e.Graphics.DrawRectangle(new Pen(back == Color.Empty ? DockDrawHelper.ColorSelectedBG_White : back), rect4); } else if (e.Item.IsOnDropDown && e.Item.Selected) { Rectangle rect = new Rectangle(3, 1, e.Item.Width - 4, e.Item.Height - 2); Rectangle rect2 = new Rectangle(4, 2, e.Item.Width - 6, e.Item.Height - 4); LinearGradientBrush b = new LinearGradientBrush(rect, back == Color.Empty ? DockDrawHelper.ColorSelectedBG_White : back, back == Color.Empty ? DockDrawHelper.ColorSelectedBG_Blue : back, LinearGradientMode.Vertical); SolidBrush b2 = new SolidBrush(border == Color.Empty ? DockDrawHelper.ColorSelectedBG_Border : border); e.Graphics.FillRectangle(b, rect); DockDrawHelper.DrawRoundedRectangle(e.Graphics, rect.Left - 1, rect.Top - 1, rect.Width, rect.Height + 1, 3, border == Color.Empty ? DockDrawHelper.ColorSelectedBG_Border : border); DockDrawHelper.DrawRoundedRectangle(e.Graphics, rect2.Left - 1, rect2.Top - 1, rect2.Width, rect2.Height + 1, 3, back == Color.Empty ? DockDrawHelper.ColorSelectedBG_White : back); e.Item.ForeColor = text; } if (((ToolStripMenuItem)e.Item).DropDown.Visible && !e.Item.IsOnDropDown) { Color back2 = GetThemeColor("ToolStripMenu.TitleBackColor"); Color border2 = GetThemeColor("ToolStripMenu.TitleBorderColor"); if (back2 != Color.Empty && border2 != Color.Empty) { e.Graphics.FillRectangle(new SolidBrush(back2), new Rectangle(0, 0, e.Item.Width, e.Item.Height)); e.Graphics.DrawRectangle(new Pen(border2), 0, 0, e.Item.Width - 1, e.Item.Height); } else { renderer.DrawMenuItemBackground(e); } } } } else { renderer.DrawMenuItemBackground(e); } }
protected override void OnRenderMenuItemBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e) { if (currentRenderer != null) { currentRenderer.DrawMenuItemBackground(e); return; } base.OnRenderMenuItemBackground(e); }
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) { if (_currentRenderer != null) { _currentRenderer.DrawMenuItemBackground(e); } else { base.OnRenderMenuItemBackground(e); } }
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) { renderer.DrawMenuItemBackground(e); }
protected override void OnPaint(PaintEventArgs e) { if (base.Owner != null) { ToolStripRenderer renderer = base.Renderer; Graphics g = e.Graphics; renderer.DrawMenuItemBackground(new ToolStripItemRenderEventArgs(g, this)); Color menuText = SystemColors.MenuText; if (base.IsForeColorSet) { menuText = this.ForeColor; } else if (!this.IsTopLevel || ToolStripManager.VisualStylesEnabled) { if (this.Selected || this.Pressed) { menuText = SystemColors.HighlightText; } else { menuText = SystemColors.MenuText; } } bool flag = this.RightToLeft == RightToLeft.Yes; ToolStripMenuItemInternalLayout internalLayout = base.InternalLayout as ToolStripMenuItemInternalLayout; if ((internalLayout != null) && internalLayout.UseMenuLayout) { if ((this.CheckState != System.Windows.Forms.CheckState.Unchecked) && internalLayout.PaintCheck) { Rectangle checkRectangle = internalLayout.CheckRectangle; if (!internalLayout.ShowCheckMargin) { checkRectangle = internalLayout.ImageRectangle; } if (checkRectangle.Width != 0) { renderer.DrawItemCheck(new ToolStripItemImageRenderEventArgs(g, this, this.CheckedImage, checkRectangle)); } } if ((this.DisplayStyle & ToolStripItemDisplayStyle.Text) == ToolStripItemDisplayStyle.Text) { renderer.DrawItemText(new ToolStripItemTextRenderEventArgs(g, this, this.Text, base.InternalLayout.TextRectangle, menuText, this.Font, flag ? ContentAlignment.MiddleRight : ContentAlignment.MiddleLeft)); bool showShortcutKeys = this.ShowShortcutKeys; if (!base.DesignMode) { showShortcutKeys = showShortcutKeys && !this.HasDropDownItems; } if (showShortcutKeys) { renderer.DrawItemText(new ToolStripItemTextRenderEventArgs(g, this, this.GetShortcutText(), base.InternalLayout.TextRectangle, menuText, this.Font, flag ? ContentAlignment.MiddleLeft : ContentAlignment.MiddleRight)); } } if (this.HasDropDownItems) { ArrowDirection arrowDirection = flag ? ArrowDirection.Left : ArrowDirection.Right; Color arrowColor = (this.Selected || this.Pressed) ? SystemColors.HighlightText : SystemColors.MenuText; arrowColor = this.Enabled ? arrowColor : SystemColors.ControlDark; renderer.DrawArrow(new ToolStripArrowRenderEventArgs(g, this, internalLayout.ArrowRectangle, arrowColor, arrowDirection)); } if ((internalLayout.PaintImage && ((this.DisplayStyle & ToolStripItemDisplayStyle.Image) == ToolStripItemDisplayStyle.Image)) && (this.Image != null)) { renderer.DrawItemImage(new ToolStripItemImageRenderEventArgs(g, this, base.InternalLayout.ImageRectangle)); } } else { if ((this.DisplayStyle & ToolStripItemDisplayStyle.Text) == ToolStripItemDisplayStyle.Text) { renderer.DrawItemText(new ToolStripItemTextRenderEventArgs(g, this, this.Text, base.InternalLayout.TextRectangle, menuText, this.Font, base.InternalLayout.TextFormat)); } if (((this.DisplayStyle & ToolStripItemDisplayStyle.Image) == ToolStripItemDisplayStyle.Image) && (this.Image != null)) { renderer.DrawItemImage(new ToolStripItemImageRenderEventArgs(g, this, base.InternalLayout.ImageRectangle)); } } } }