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


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

См. также