如何:自定义绘制 ToolStrip 控件
ToolStrip 控件具有以下关联的呈现(绘制)类:
ToolStripSystemRenderer 提供操作系统的外观和样式。
ToolStripProfessionalRenderer 提供 Microsoft Office 的外观和样式。
ToolStripRenderer 是另外两个呈现类的抽象基类。
若要自定义绘制(也称为所有者绘制)ToolStrip,您可以重写其中一个 Renderer 类,并更改呈现逻辑的一个方面。
有关更多信息,请参见 自定义绘制用户控件示例 和 自定义绘制用户控件示例.
下面的过程描述自定义绘制的各个方面。
在所提供的体现程序之间切换
将 RenderMode 属性设置为您需要的 ToolStripRenderMode 值。
通过 ManagerRenderMode,静态 RenderMode 可以为您的应用程序确定体现程序。 ToolStripRenderMode 的其他值是 Custom、Professional 和 System。
将 Microsoft Office 样式的边框更改为直线
提示
此方法有一个针对 ToolStripRenderer、ToolStripSystemRenderer 和 ToolStripProfessionalRenderer 的版本。
更改 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 控件的呈现
使用 ToolStripManager.RenderMode 属性选择所提供的其中一个体现程序。
使用 ToolStripManager.Renderer 分配一个自定义体现程序。
请确保 ToolStrip.RenderMode 设置为 ManagerRenderMode 的默认值。
关闭整个应用程序的 Microsoft Office 颜色
- 将 ToolStripManager.VisualStylesEnabled 设置为 false。
关闭一个 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 控件创建和设置自定义呈现器