Поделиться через


Практическое руководство. Создание и настройка пользовательского отрисовщика для элемента управления 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();  
    

См. также