public static void DrawSelection(Graphics G, xColorTable ColorTable, Rectangle Rect) { Rectangle TopRect = new Rectangle(); Rectangle BottomRect = new Rectangle(); Rectangle FillRect = new Rectangle(Rect.X + 1, Rect.Y + 1, Rect.Width - 1, Rect.Height - 1); TopRect = FillRect; TopRect.Height -= Convert.ToInt32(TopRect.Height / 2.0); BottomRect = new Rectangle(TopRect.X, TopRect.Bottom, TopRect.Width, FillRect.Height - TopRect.Height); // Top gradient using (LinearGradientBrush LGB = new LinearGradientBrush(TopRect, ColorTable.SelectionTopGradient, ColorTable.SelectionMidGradient, LinearGradientMode.Vertical)) { G.FillRectangle(LGB, TopRect); } // Bottom using (SolidBrush B1 = new SolidBrush(ColorTable.SelectionBottomGradient)) { G.FillRectangle(B1, BottomRect); } // Border using (Pen P1 = new Pen(ColorTable.SelectionBorder)) { RectDrawing.DrawRoundedRectangle(G, P1, Rect.X, Rect.Y, Rect.Width, Rect.Height, 2F); } }
protected override void OnRenderDropDownButtonBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e) { Rectangle rect = new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height - 1); bool drawBorder = false; if (e.Item.Pressed) { drawBorder = true; using (SolidBrush b = new SolidBrush(this.ColorTable.CommonColorTable.PressedBackground)) { e.Graphics.FillRectangle(b, rect); } } else if (e.Item.Selected) { drawBorder = true; RectDrawing.DrawSelection(e.Graphics, this.ColorTable.CommonColorTable, rect); } if (drawBorder) { using (Pen p = new Pen(this.ColorTable.CommonColorTable.SelectionBorder)) { e.Graphics.DrawRectangle(p, rect); } } }
protected override void OnRenderSplitButtonBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e) { base.OnRenderSplitButtonBackground(e); bool drawBorder = false; bool drawSeparator = true; var item = (ToolStripSplitButton)e.Item; Rectangle btnRect = new Rectangle(0, 0, item.ButtonBounds.Width - 1, item.ButtonBounds.Height - 1); Rectangle borderRect = new Rectangle(0, 0, item.Bounds.Width - 1, item.Bounds.Height - 1); if (item.DropDownButtonPressed) { drawBorder = true; drawSeparator = false; using (SolidBrush b = new SolidBrush(this.ColorTable.CommonColorTable.PressedBackground)) { e.Graphics.FillRectangle(b, borderRect); } } else if (item.DropDownButtonSelected) { drawBorder = true; RectDrawing.DrawSelection(e.Graphics, this.ColorTable.CommonColorTable, borderRect); } if (item.ButtonPressed) { using (SolidBrush b = new SolidBrush(this.ColorTable.CommonColorTable.PressedBackground)) { e.Graphics.FillRectangle(b, btnRect); } } if (drawBorder) { using (Pen p = new Pen(this.ColorTable.CommonColorTable.SelectionBorder)) { e.Graphics.DrawRectangle(p, borderRect); if (drawSeparator) { e.Graphics.DrawRectangle(p, btnRect); } } this.DrawCustomArrow(e.Graphics, item); } }
protected override void OnRenderOverflowButtonBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e) { Rectangle rect = new Rectangle(); Rectangle rectEnd = new Rectangle(); rect = new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height - 2); rectEnd = new Rectangle(rect.X - 5, rect.Y, rect.Width - 5, rect.Height); if (e.Item.Pressed) { using (SolidBrush b = new SolidBrush(this.ColorTable.CommonColorTable.PressedBackground)) { e.Graphics.FillRectangle(b, rect); } } else if (e.Item.Selected) { RectDrawing.DrawSelection(e.Graphics, this.ColorTable.CommonColorTable, rect); } else { using (SolidBrush b = new SolidBrush(this.ColorTable.CommonColorTable.OverflowBackground)) { e.Graphics.FillRectangle(b, rect); } } using (Pen P1 = new Pen(this.ColorTable.CommonColorTable.Background)) { RectDrawing.DrawRoundedRectangle(e.Graphics, P1, rectEnd.X, rectEnd.Y, rectEnd.Width, rectEnd.Height, 3F); } // Icon int w = rect.Width - 1; int h = rect.Height - 1; float triangleWidth = w / 2.0F + 1; float triangleLeft = rect.Left + (w - triangleWidth) / 2.0F + 3; float triangleHeight = triangleWidth / 2.0F; float triangleTop = rect.Top + (h - triangleHeight) / 2.0F + 7; RectangleF arrowRect = new RectangleF(triangleLeft, triangleTop, triangleWidth, triangleHeight); this.DrawCustomArrow(e.Graphics, e.Item, Rectangle.Round(arrowRect)); using (Pen p = new Pen(this.ColorTable.CommonColorTable.Arrow)) { e.Graphics.DrawLine(p, triangleLeft + 2, triangleTop - 2, triangleLeft + triangleWidth - 2, triangleTop - 2); } }
protected override void OnRenderMenuItemBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e) { if (e.Item.Enabled) { if (e.Item.Selected) { if (!e.Item.IsOnDropDown) { Rectangle SelRect = new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height - 1); RectDrawing.DrawSelection(e.Graphics, this.ColorTable.CommonColorTable, SelRect); } else { Rectangle SelRect = new Rectangle(2, 0, e.Item.Width - 4, e.Item.Height - 1); RectDrawing.DrawSelection(e.Graphics, this.ColorTable.CommonColorTable, SelRect); } } if (((ToolStripMenuItem)e.Item).DropDown.Visible && !e.Item.IsOnDropDown) { Rectangle BorderRect = new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height); // Fill the background Rectangle BackgroundRect = new Rectangle(1, 1, e.Item.Width - 2, e.Item.Height + 2); using (SolidBrush B1 = new SolidBrush(this.ColorTable.DroppedDownItemBackground)) { e.Graphics.FillRectangle(B1, BackgroundRect); } // Draw border using (Pen P1 = new Pen(this.ColorTable.CommonColorTable.DropdownBorder)) { RectDrawing.DrawRoundedRectangle(e.Graphics, P1, BorderRect.X, BorderRect.Y, BorderRect.Width, BorderRect.Height, 2F); } } e.Item.ForeColor = this.ColorTable.CommonColorTable.TextColor; } }