Практическое руководство. Пользовательская прорисовка элемента управления ToolStrip
Элементы управления ToolStrip имеют следующие связанные классы отрисовки:
ToolStripSystemRenderer предоставляет внешний вид и стиль операционной системы;
ToolStripProfessionalRenderer предоставляет внешний вид и стиль Microsoft Office;
ToolStripRenderer является абстрактным базовым классом для двух других классов отрисовки.
Для настраиваемой отрисовки (также известной как рисование владельцем) элемента управления ToolStrip можно переопределить один из классов отрисовки и изменить перспективу логики отрисовки.
В приведенных ниже процедурах описаны различные аспекты настраиваемой отрисовки.
Переключение между доступными средствами отрисовки
Задайте для свойства RenderMode требуемое значение ToolStripRenderMode.
Для ManagerRenderMode статический режим RenderMode определяет средство отрисовки для приложения. Другие значения ToolStripRenderMode: Custom, Professional и System.
Изменение границ в стиле Office
- Переопределите ToolStripProfessionalRenderer.OnRenderToolStripBorder, но не вызывайте базовый класс.
Примечание.
Существуют версии этого метода для ToolStripRenderer, ToolStripSystemRenderer и ToolStripProfessionalRenderer.
Изменение ProfessionalColorTable
Переопределите ProfessionalColorTable и измените нужные цвета.
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { var colorTable = new MyColorTable(); toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable); } class MyColorTable: ProfessionalColorTable { public override System.Drawing.Color ButtonPressedGradientBegin => Color.Red; public override System.Drawing.Color ButtonPressedGradientMiddle => Color.Blue; public override System.Drawing.Color ButtonPressedGradientEnd => Color.Green; public override System.Drawing.Color ButtonSelectedGradientBegin => Color.Yellow; public override System.Drawing.Color ButtonSelectedGradientMiddle => Color.Orange; public override System.Drawing.Color ButtonSelectedGradientEnd => Color.Violet; } }
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim colorTable As New MyColorTable ToolStrip1.Renderer = New ToolStripProfessionalRenderer(colorTable) End Sub Class MyColorTable Inherits ProfessionalColorTable Public Overrides ReadOnly Property ButtonPressedGradientBegin() As System.Drawing.Color Get Return Color.Red End Get End Property Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As System.Drawing.Color Get Return Color.Blue End Get End Property Public Overrides ReadOnly Property ButtonPressedGradientEnd() As System.Drawing.Color Get Return Color.Green End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As System.Drawing.Color Get Return Color.Yellow End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As System.Drawing.Color Get Return Color.Orange End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As System.Drawing.Color Get Return Color.Violet End Get End Property End Class End Class
Изменение отрисовки для всех ToolStrip
С помощью свойства ToolStripManager.RenderMode выберите одно из доступных средств отрисовки.
Используйте ToolStripManager.Renderer для назначения пользовательского средства отрисовки.
Убедитесь в том, что свойству ToolStrip.RenderMode присвоено значение по умолчанию ManagerRenderMode.
Отключение цветов Office
- Задайте для параметра ToolStripManager.VisualStylesEnabled значение
false
.
Отключение цветов в стиле Office для одного ToolStrip
Используйте код, аналогичный приведенному ниже.
ProfessionalColorTable colorTable = new ProfessionalColorTable(); colorTable.UseSystemColors = true; toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable);
Dim colorTable As New ProfessionalColorTable colorTable.UseSystemColors = True ToolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable)
См. также
- ToolStripSystemRenderer
- ToolStripProfessionalRenderer
- ToolStripRenderer
- Элементы управления со встроенной поддержкой рисования владельцем
- Практическое руководство. Создание и определение пользовательского средства визуализации для элемента управления ToolStrip в Windows Forms
- Общие сведения об элементе управления ToolStrip
.NET Desktop feedback