public static void DrawSelection(Graphics G, xColorTable ColorTable, Rectangle Rect) { Rectangle TopRect = default(Rectangle); Rectangle BottomRect = default(Rectangle); Rectangle FillRect = new Rectangle(Rect.X + 1, Rect.Y + 1, Rect.Width - 1, Rect.Height - 1); TopRect = FillRect; TopRect.Height -= System.Convert.ToInt32(TopRect.Height / 2); 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, System.Convert.ToSingle(Rect.X), System.Convert.ToSingle(Rect.Y), System.Convert.ToSingle(Rect.Width), System.Convert.ToSingle(Rect.Height), 2); } }
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 OnRenderOverflowButtonBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e) { Rectangle rect = default(Rectangle); Rectangle rectEnd = default(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, System.Convert.ToSingle(rectEnd.X), System.Convert.ToSingle(rectEnd.Y), System.Convert.ToSingle(rectEnd.Width), System.Convert.ToSingle(rectEnd.Height), 3); } // Icon int w = System.Convert.ToInt32(rect.Width - 1); int h = System.Convert.ToInt32(rect.Height - 1); float triangleWidth = w / 2.0F + 1; float triangleLeft = System.Convert.ToSingle(rect.Left + (w - triangleWidth) / 2.0F + 3); float triangleHeight = triangleWidth / 2.0F; float triangleTop = System.Convert.ToSingle(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, System.Convert.ToSingle(BorderRect.X), System.Convert.ToSingle(BorderRect.Y), System.Convert.ToSingle(BorderRect.Width), System.Convert.ToSingle(BorderRect.Height), 2); } } e.Item.ForeColor = this.ColorTable.CommonColorTable.TextColor; } }
protected override void OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs e) { base.OnRenderSplitButtonBackground(e); bool drawBorder = false; bool drawSeparator = true; ToolStripSplitButton item = (ToolStripSplitButton)e.Item; checked { 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); bool flag = item.DropDownButtonPressed; if (flag) { drawBorder = true; drawSeparator = false; SolidBrush b = new SolidBrush(this.ColorTable.CommonColorTable.PressedBackground); try { e.Graphics.FillRectangle(b, borderRect); } finally { flag = (b != null); if (flag) { ((IDisposable)b).Dispose(); } } } else { flag = item.DropDownButtonSelected; if (flag) { drawBorder = true; RectDrawing.DrawSelection(e.Graphics, this.ColorTable.CommonColorTable, borderRect); } } flag = item.ButtonPressed; if (flag) { SolidBrush b2 = new SolidBrush(this.ColorTable.CommonColorTable.PressedBackground); try { e.Graphics.FillRectangle(b2, btnRect); } finally { flag = (b2 != null); if (flag) { ((IDisposable)b2).Dispose(); } } } flag = drawBorder; if (flag) { Pen p = new Pen(this.ColorTable.CommonColorTable.SelectionBorder); try { e.Graphics.DrawRectangle(p, borderRect); flag = drawSeparator; if (flag) { e.Graphics.DrawRectangle(p, btnRect); } } finally { flag = (p != null); if (flag) { ((IDisposable)p).Dispose(); } } this.DrawCustomArrow(e.Graphics, item); } } }