ToolStripProfessionalRenderer Class
Handles the painting functionality for ToolStrip objects, applying a custom palette and a streamlined style.
System.Windows.Forms.ToolStripRenderer
System.Windows.Forms.ToolStripProfessionalRenderer
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
The ToolStripProfessionalRenderer type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ToolStripProfessionalRenderer() | Initializes a new instance of the ToolStripProfessionalRenderer class. |
![]() | ToolStripProfessionalRenderer(ProfessionalColorTable) | Initializes a new instance of the ToolStripProfessionalRenderer class. |
| Name | Description | |
|---|---|---|
![]() | ColorTable | Gets the color palette used for painting. |
![]() | RoundedEdges | Gets or sets a value indicating whether edges of controls have a rounded rather than a square or sharp appearance. |
| Name | Description | |
|---|---|---|
![]() | RenderArrow | Occurs when an arrow on a ToolStripItem is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderButtonBackground | Occurs when the background for a ToolStripButton is rendered (Inherited from ToolStripRenderer.) |
![]() | RenderDropDownButtonBackground | Occurs when the background for a ToolStripDropDownButton is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderGrip | Occurs when the move handle for a ToolStrip is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderImageMargin | Draws the margin between an image and its container. (Inherited from ToolStripRenderer.) |
![]() | RenderItemBackground | Occurs when the background for a ToolStripItem is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderItemCheck | Occurs when the image for a selected ToolStripItem is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderItemImage | Occurs when the image for a ToolStripItem is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderItemText | Occurs when the text for a ToolStripItem is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderLabelBackground | Occurs when the background for a ToolStripLabel is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderMenuItemBackground | Occurs when the background for a ToolStripMenuItem is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderOverflowButtonBackground | Occurs when the background for an overflow button is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderSeparator | Occurs when a ToolStripSeparator is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderSplitButtonBackground | Occurs when the background for a ToolStripSplitButton is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderStatusStripSizingGrip | Occurs when the display style changes. (Inherited from ToolStripRenderer.) |
![]() | RenderToolStripBackground | Occurs when the background for a ToolStrip is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderToolStripBorder | Occurs when the border for a ToolStrip is rendered. (Inherited from ToolStripRenderer.) |
![]() | RenderToolStripContentPanelBackground | Draws the background of a ToolStripContentPanel. (Inherited from ToolStripRenderer.) |
![]() | RenderToolStripPanelBackground | Draws the background of a ToolStripPanel. (Inherited from ToolStripRenderer.) |
![]() | RenderToolStripStatusLabelBackground | Draws the background of a ToolStripStatusLabel. (Inherited from ToolStripRenderer.) |
ToolStripProfessionalRenderer creates pens and brushes based on a replaceable color table called ProfessionalColorTable.
The following code example demonstrates how to create a composite control that mimics the Navigation Pane provided by Microsoft® Outlook®. For a full code listing, see How to: Create a Professionally Styled ToolStrip Control.
internal class StackRenderer : ToolStripProfessionalRenderer { private static Bitmap titleBarGripBmp; private static string titleBarGripEnc = @"Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+"; // Define titlebar colors. private static Color titlebarColor1 = Color.FromArgb(89, 135, 214); private static Color titlebarColor2 = Color.FromArgb(76, 123, 204); private static Color titlebarColor3 = Color.FromArgb(63, 111, 194); private static Color titlebarColor4 = Color.FromArgb(50, 99, 184); private static Color titlebarColor5 = Color.FromArgb(38, 88, 174); private static Color titlebarColor6 = Color.FromArgb(25, 76, 164); private static Color titlebarColor7 = Color.FromArgb(12, 64, 154); private static Color borderColor = Color.FromArgb(0, 0, 128); static StackRenderer() { titleBarGripBmp = StackView.DeserializeFromBase64(titleBarGripEnc); } public StackRenderer() { } private void DrawTitleBar(Graphics g, Rectangle rect) { // Assign the image for the grip. Image titlebarGrip = titleBarGripBmp; // Fill the titlebar. // This produces the gradient and the rounded-corner effect. g.DrawLine(new Pen(titlebarColor1), rect.X, rect.Y, rect.X + rect.Width, rect.Y); g.DrawLine(new Pen(titlebarColor2), rect.X, rect.Y + 1, rect.X + rect.Width, rect.Y + 1); g.DrawLine(new Pen(titlebarColor3), rect.X, rect.Y + 2, rect.X + rect.Width, rect.Y + 2); g.DrawLine(new Pen(titlebarColor4), rect.X, rect.Y + 3, rect.X + rect.Width, rect.Y + 3); g.DrawLine(new Pen(titlebarColor5), rect.X, rect.Y + 4, rect.X + rect.Width, rect.Y + 4); g.DrawLine(new Pen(titlebarColor6), rect.X, rect.Y + 5, rect.X + rect.Width, rect.Y + 5); g.DrawLine(new Pen(titlebarColor7), rect.X, rect.Y + 6, rect.X + rect.Width, rect.Y + 6); // Center the titlebar grip. g.DrawImage( titlebarGrip, new Point(rect.X + ((rect.Width / 2) - (titlebarGrip.Width / 2)), rect.Y + 1)); } // This method handles the RenderGrip event. protected override void OnRenderGrip(ToolStripGripRenderEventArgs e) { DrawTitleBar( e.Graphics, new Rectangle(0, 0, e.ToolStrip.Width, 7)); } // This method handles the RenderToolStripBorder event. protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) { DrawTitleBar( e.Graphics, new Rectangle(0, 0, e.ToolStrip.Width, 7)); } // This method handles the RenderButtonBackground event. protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e) { Graphics g = e.Graphics; Rectangle bounds = new Rectangle(Point.Empty, e.Item.Size); Color gradientBegin = Color.FromArgb(203, 225, 252); Color gradientEnd = Color.FromArgb(125, 165, 224); ToolStripButton button = e.Item as ToolStripButton; if (button.Pressed || button.Checked) { gradientBegin = Color.FromArgb(254, 128, 62); gradientEnd = Color.FromArgb(255, 223, 154); } else if (button.Selected) { gradientBegin = Color.FromArgb(255, 255, 222); gradientEnd = Color.FromArgb(255, 203, 136); } using (Brush b = new LinearGradientBrush( bounds, gradientBegin, gradientEnd, LinearGradientMode.Vertical)) { g.FillRectangle(b, bounds); } e.Graphics.DrawRectangle( SystemPens.ControlDarkDark, bounds); g.DrawLine( SystemPens.ControlDarkDark, bounds.X, bounds.Y, bounds.Width - 1, bounds.Y); g.DrawLine( SystemPens.ControlDarkDark, bounds.X, bounds.Y, bounds.X, bounds.Height - 1); ToolStrip toolStrip = button.Owner; ToolStripButton nextItem = button.Owner.GetItemAt( button.Bounds.X, button.Bounds.Bottom + 1) as ToolStripButton; if (nextItem == null) { g.DrawLine( SystemPens.ControlDarkDark, bounds.X, bounds.Height - 1, bounds.X + bounds.Width - 1, bounds.Height - 1); } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
