ToolStrip 控件可以轻松支持主题和样式。 可以通过将 ToolStrip.Renderer 属性或 ToolStripManager.Renderer 属性设置为自定义呈现器来实现完全自定义的外观和体验。
可以将呈现器分配给每个单独的 ToolStrip、MenuStrip、ContextMenuStrip或 StatusStrip 控件,也可以使用 Renderer 属性通过将 ToolStrip.RenderMode 属性设置为 ToolStripRenderMode.ManagerRenderMode来影响所有对象。
注释
仅当 RenderMode 的值不 Custom时,ToolStrip.Renderer 才会返回 null。
创建自定义呈现器
- 扩展 ToolStripRenderer 类。 
- 通过替代相应的 On… 成员来实现所需的自定义呈现 - Public Class RedTextRenderer Inherits System.Windows.Forms.ToolStripRenderer Protected Overrides Sub OnRenderItemText(ByVal e As _ ToolStripItemTextRenderEventArgs) e.TextColor = Color.Red e.TextFont = New Font("Helvetica", 7, FontStyle.Bold) MyBase.OnRenderItemText(e) End Sub End Class- public class RedTextRenderer : _ System.Windows.Forms.ToolStripRenderer { protected override void _ OnRenderItemText(ToolStripItemTextRenderEventArgs e) { e.TextColor = Color.Red; e.TextFont = new Font("Helvetica", 7, FontStyle.Bold); base.OnRenderItemText(e); } }
将自定义呈现器设置为当前呈现器
- 若要为一个 ToolStrip设置自定义呈现器,请将 ToolStrip.Renderer 属性设置为自定义呈现器。 - toolStrip1.Renderer = New RedTextRenderer()- toolStrip1.Renderer = new RedTextRenderer();
- 或者为应用程序中包含的所有 ToolStrip 类设置自定义呈现器:将 ToolStripManager.Renderer 属性设置为自定义呈现器,并将 RenderMode 属性设置为 ManagerRenderMode。 - toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode ToolStripManager.Renderer = New RedTextRenderer()- toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode; ToolStripManager.Renderer = new RedTextRenderer();