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

更新:2007 年 11 月

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
    

    [C#]

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

    [C#]

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

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

    [C#]

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

请参见

概念

ToolStrip 控件结构

ToolStrip 技术摘要

参考

Renderer

ToolStripRenderer

RenderMode

ToolStrip 控件概述(Windows 窗体)