如何:自定义绘制 ToolStrip 控件

ToolStrip 控件具有以下关联的呈现(绘制)类:

若要自定义绘制(也称为所有者绘制)ToolStrip,您可以重写其中一个 Renderer 类,并更改呈现逻辑的一个方面。

有关更多信息,请参见 自定义绘制用户控件示例自定义绘制用户控件示例.

下面的过程描述自定义绘制的各个方面。

在所提供的体现程序之间切换

将 Microsoft Office 样式的边框更改为直线

提示

此方法有一个针对 ToolStripRendererToolStripSystemRendererToolStripProfessionalRenderer 的版本。

更改 ProfessionalColorTable

  • 重写 ProfessionalColorTable 并更改您需要的颜色。

    [Visual Basic]

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
    System.EventArgs) Handles Me.Load
        Dim t As MyColorTable = New MyColorTable
        ToolStrip1.Renderer = New ToolStripProfessionalRenderer(t)
    End Sub
    
    Class MyColorTable 
    Inherits ProfessionalColorTable
    
    Public Overrides ReadOnly Property ButtonPressedGradientBegin() As Color
        Get
            Return Color.Red
        End Get
    End Property
    
    Public Overrides ReadOnly Property ButtonPressedGradientMiddle() _
    As System.Drawing.Color
        Get
            Return Color.Blue
        End Get
            End Property
    
    Public Overrides ReadOnly Property ButtonPressedGradientEnd() _
    As System.Drawing.Color
        Get
            Return Color.Green
        End Get
    End Property
    
    Public Overrides ReadOnly Property ButtonSelectedGradientBegin() _
    As Color
        Get
            Return Color.Yellow
        End Get
    End Property
    
    Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As System.Drawing.Color
        Get
            Return Color.Orange
        End Get
    End Property
    
    Public Overrides ReadOnly Property ButtonSelectedGradientEnd() _
    As System.Drawing.Color
        Get
            Return Color.Violet
        End Get
    End Property
    End Class
    

更改应用程序中对所有 ToolStrip 控件的呈现

  1. 使用 ToolStripManager.RenderMode 属性选择所提供的其中一个体现程序。

  2. 使用 ToolStripManager.Renderer 分配一个自定义体现程序。

  3. 请确保 ToolStrip.RenderMode 设置为 ManagerRenderMode 的默认值。

关闭整个应用程序的 Microsoft Office 颜色

关闭一个 ToolStrip 控件的 Microsoft Office 颜色

  • 使用类似于下面的代码示例的代码。

    [Visual Basic]

    Dim colorTable As ProfessionalColorTable()
    colorTable.UseSystemColors = True
    Dim toolStrip.Renderer As ToolStripProfessionalRenderer(colorTable)
    

    [C#]

    ProfessionalColorTable colorTable = new ProfessionalColorTable();
    colorTable.UseSystemColors = true;
    toolStrip.Renderer = new ToolStripProfessionalRenderer(colorTable);
    

请参见

任务

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

参考

ToolStrip 控件概述(Windows 窗体)

ToolStripSystemRenderer

ToolStripProfessionalRenderer

ToolStripRenderer

概念

具有内置所有者描述支持的控件