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();