/// <summary> /// Draws the selection. /// </summary> /// <param name="G">The g.</param> /// <param name="ColorTable">The color table.</param> /// <param name="Rect">The rect.</param> 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); } }
/// <summary> /// Handles the <see cref="E:RenderOverflowButtonBackground" /> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.ToolStripItemRenderEventArgs" /> that contains the event data.</param> 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); } }
/// <summary> /// Handles the <see cref="E:RenderMenuItemBackground" /> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.ToolStripItemRenderEventArgs" /> that contains the event data.</param> 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; } }