如何:在 Windows 窗体中为 ToolStrip 控件创建和设置自定义呈现器

ToolStrip 控件可以轻松支持主题和样式。 可通过将 ToolStrip.Renderer 属性或 ToolStripManager.Renderer 属性设置为自定义呈现器来实现完全自定义的外观和行为(外观和使用体验)。

可以将呈现器分配给每个单独的 ToolStripMenuStripContextMenuStripStatusStrip 控件,也可以通过将 ToolStrip.RenderMode 属性设置为 ToolStripRenderMode.ManagerRenderMode 来使用 Renderer 属性影响所有对象。

注意

只有当 ToolStrip.Renderer 的值不为 null 时,RenderMode 才会返回 Custom

创建自定义呈现器

  1. 扩展 ToolStripRenderer 类。

  2. 通过替代相应的 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);  
        }  
    }  
    

将自定义呈现器设置为当前呈现器

  1. 若要为一个 ToolStrip 设置自定义呈现器,请将 ToolStrip.Renderer 属性设置为自定义呈现器。

    toolStrip1.Renderer = New RedTextRenderer()  
    
    toolStrip1.Renderer = new RedTextRenderer();  
    
  2. 或者为应用程序中包含的所有 ToolStrip 类设置自定义呈现器:将 ToolStripManager.Renderer 属性设置为自定义呈现器,并将 RenderMode 属性设置为 ManagerRenderMode

    toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode  
    ToolStripManager.Renderer = New RedTextRenderer()  
    
    toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode;  
    ToolStripManager.Renderer = new RedTextRenderer();  
    

另请参阅