Como personalizar o desenho de um controle ToolStrip
Os ToolStrip controles têm as seguintes classes de renderização (pintura) associadas:
ToolStripSystemRenderer Fornece a aparência e o estilo do seu sistema operacional.
ToolStripProfessionalRenderer fornece a aparência e o estilo do Microsoft Office.
ToolStripRenderer é a classe base abstrata para as outras duas classes de renderização.
Para desenhar personalizado (também conhecido como desenho do proprietário) um , você pode substituir uma das classes do renderizador e alterar um ToolStripaspecto da lógica de renderização.
Os procedimentos a seguir descrevem vários aspectos do desenho personalizado.
Alternar entre os renderizadores fornecidos
Defina a RenderMode propriedade para o ToolStripRenderMode valor desejado.
Com ManagerRenderModeo , o estático RenderMode determina o renderizador para seu aplicativo. Os outros valores de ToolStripRenderMode são Custom, Professionale System.
Alterar as bordas no estilo do Office
- Substitua ToolStripProfessionalRenderer.OnRenderToolStripBorder, mas não chame a classe base.
Observação
Há uma versão desse método para ToolStripRenderer, ToolStripSystemRenderere ToolStripProfessionalRenderer.
Alterar o ProfessionalColorTable
Substitua ProfessionalColorTable e altere as cores desejadas.
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { var colorTable = new MyColorTable(); toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable); } class MyColorTable: ProfessionalColorTable { public override System.Drawing.Color ButtonPressedGradientBegin => Color.Red; public override System.Drawing.Color ButtonPressedGradientMiddle => Color.Blue; public override System.Drawing.Color ButtonPressedGradientEnd => Color.Green; public override System.Drawing.Color ButtonSelectedGradientBegin => Color.Yellow; public override System.Drawing.Color ButtonSelectedGradientMiddle => Color.Orange; public override System.Drawing.Color ButtonSelectedGradientEnd => Color.Violet; } }
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim colorTable As New MyColorTable ToolStrip1.Renderer = New ToolStripProfessionalRenderer(colorTable) End Sub Class MyColorTable Inherits ProfessionalColorTable Public Overrides ReadOnly Property ButtonPressedGradientBegin() As System.Drawing.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 System.Drawing.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 End Class
Alterar a renderização de todos os ToolStrips
Use a ToolStripManager.RenderMode propriedade para escolher um dos renderizadores fornecidos.
Use ToolStripManager.Renderer para atribuir um renderizador personalizado.
Certifique-se de que ToolStrip.RenderMode está definido como o valor padrão de ManagerRenderMode.
Desativar as cores do Office
- Defina ToolStripManager.VisualStylesEnabled como
false
.
Desativar as cores do Office para uma ToolStrip
Use um código semelhante ao seguinte exemplo.
ProfessionalColorTable colorTable = new ProfessionalColorTable(); colorTable.UseSystemColors = true; toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable);
Dim colorTable As New ProfessionalColorTable colorTable.UseSystemColors = True ToolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable)
Confira também
.NET Desktop feedback