Практическое руководство. Создание и определение пользовательского средства визуализации для элемента управления ToolStrip в Windows Forms

Элементы управления ToolStrip позволяют легко поддерживать темы и стили. Вы можете полностью настроить внешний вид и поведение, присвоив пользовательский отрисовщик свойству ToolStrip.Renderer или ToolStripManager.Renderer.

Вы можете присваивать отрисовщики каждому отдельному элементу управления ToolStrip, MenuStrip, ContextMenuStrip или StatusStrip либо использовать свойство Renderer, чтобы произвести настройку для всех объектов, присвоив свойству ToolStrip.RenderMode значение ToolStripRenderMode.ManagerRenderMode.

Примечание.

RenderMode возвращает Custom только в том случае, если значение ToolStrip.Renderer не равно null.

Создание пользовательского отрисовщика

  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  
    
    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()  
    
    toolStrip1.Renderer = new RedTextRenderer();  
    
  2. Чтобы задать пользовательский отрисовщик для всех классов ToolStrip, имеющихся в приложении, присвойте этот отрисовщик свойству ToolStripManager.Renderer и задайте для свойства RenderMode значение ManagerRenderMode.

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

См. также