Практическое руководство. Создание и определение пользовательского средства визуализации для элемента управления ToolStrip в Windows Forms
Элементы управления ToolStrip позволяют легко поддерживать темы и стили. Вы можете полностью настроить внешний вид и поведение, присвоив пользовательский отрисовщик свойству ToolStrip.Renderer или ToolStripManager.Renderer.
Вы можете присваивать отрисовщики каждому отдельному элементу управления ToolStrip, MenuStrip, ContextMenuStrip или StatusStrip либо использовать свойство Renderer, чтобы произвести настройку для всех объектов, присвоив свойству ToolStrip.RenderMode значение ToolStripRenderMode.ManagerRenderMode.
Примечание.
RenderMode возвращает Custom только в том случае, если значение ToolStrip.Renderer не равно null
.
Создание пользовательского отрисовщика
Расширьте класс ToolStripRenderer.
Реализуйте требуемую пользовательскую отрисовку, переопределив соответствующие элементы 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); } }
Назначение пользовательского отрисовщика текущим отрисовщиком
Чтобы задать пользовательский отрисовщик для одного элемента ToolStrip, присвойте этот отрисовщик свойству ToolStrip.Renderer.
toolStrip1.Renderer = New RedTextRenderer()
toolStrip1.Renderer = new RedTextRenderer();
Чтобы задать пользовательский отрисовщик для всех классов ToolStrip, имеющихся в приложении, присвойте этот отрисовщик свойству ToolStripManager.Renderer и задайте для свойства RenderMode значение ManagerRenderMode.
toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode ToolStripManager.Renderer = New RedTextRenderer()
toolStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode; ToolStripManager.Renderer = new RedTextRenderer();
См. также
.NET Desktop feedback