Compartilhar via


Como criar e definir um renderizador personalizado para o controle ToolStrip no Windows Forms

Controles ToolStrip dão suporte fácil a temas e estilos. Você pode alcançar uma aparência e um comportamento totalmente personalizados (look and feel) definindo a propriedade ToolStrip.Renderer ou a propriedade ToolStripManager.Renderer para um renderizador personalizado.

Você pode atribuir renderizadores a cada ToolStripindividual, MenuStrip, ContextMenuStripou controle StatusStrip ou pode usar a propriedade Renderer para afetar todos os objetos definindo a propriedade ToolStrip.RenderMode como ToolStripRenderMode.ManagerRenderMode.

Nota

RenderMode retornará Custom somente se o valor de ToolStrip.Renderer não for null.

Para criar um renderizador personalizado

  1. Estenda a classe ToolStripRenderer.

  2. Implementar a renderização personalizada desejada substituindo os membros Em...

    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);  
        }  
    }  
    

Para definir o renderizador personalizado como o renderizador atual

  1. Para definir o renderizador personalizado para um ToolStrip, defina a propriedade ToolStrip.Renderer como o renderizador personalizado.

    toolStrip1.Renderer = New RedTextRenderer()  
    
    toolStrip1.Renderer = new RedTextRenderer();  
    
  2. Ou para definir o renderizador personalizado para todas as classes de ToolStrip contidas em seu aplicativo: defina a propriedade ToolStripManager.Renderer para o renderizador personalizado e defina a propriedade RenderMode como ManagerRenderMode.

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

Consulte também