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


ToolStripProfessionalRenderer Класс

Определение

Обрабатывает функции рисования для объектов ToolStrip, применяя пользовательскую палитру и упрощенный стиль.

public ref class ToolStripProfessionalRenderer : System::Windows::Forms::ToolStripRenderer
public class ToolStripProfessionalRenderer : System.Windows.Forms.ToolStripRenderer
type ToolStripProfessionalRenderer = class
    inherit ToolStripRenderer
Public Class ToolStripProfessionalRenderer
Inherits ToolStripRenderer
Наследование
ToolStripProfessionalRenderer

Примеры

В следующем примере кода показано, как создать составной элемент управления, который имитирует область навигации , предоставляемую Microsoft® Outlook®. Полный список кода см. в разделе Практическое руководство. Создание элемента управления ToolStrip в профессиональном стиле.

internal class StackRenderer : ToolStripProfessionalRenderer
{
    private static Bitmap titleBarGripBmp;
    private static string titleBarGripEnc = @"Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+";

    // Define titlebar colors.
    private static Color titlebarColor1 = Color.FromArgb(89, 135, 214);
    private static Color titlebarColor2 = Color.FromArgb(76, 123, 204);
    private static Color titlebarColor3 = Color.FromArgb(63, 111, 194);
    private static Color titlebarColor4 = Color.FromArgb(50, 99, 184);
    private static Color titlebarColor5 = Color.FromArgb(38, 88, 174);
    private static Color titlebarColor6 = Color.FromArgb(25, 76, 164);
    private static Color titlebarColor7 = Color.FromArgb(12, 64, 154);
    private static Color borderColor = Color.FromArgb(0, 0, 128);

    static StackRenderer()
    {
        titleBarGripBmp = StackView.DeserializeFromBase64(titleBarGripEnc);
    }

    public StackRenderer()
    {
    }

    private void DrawTitleBar(Graphics g, Rectangle rect)
    {
        // Assign the image for the grip.
        Image titlebarGrip = titleBarGripBmp;

        // Fill the titlebar. 
        // This produces the gradient and the rounded-corner effect.
        g.DrawLine(new Pen(titlebarColor1), rect.X, rect.Y, rect.X + rect.Width, rect.Y);
        g.DrawLine(new Pen(titlebarColor2), rect.X, rect.Y + 1, rect.X + rect.Width, rect.Y + 1);
        g.DrawLine(new Pen(titlebarColor3), rect.X, rect.Y + 2, rect.X + rect.Width, rect.Y + 2);
        g.DrawLine(new Pen(titlebarColor4), rect.X, rect.Y + 3, rect.X + rect.Width, rect.Y + 3);
        g.DrawLine(new Pen(titlebarColor5), rect.X, rect.Y + 4, rect.X + rect.Width, rect.Y + 4);
        g.DrawLine(new Pen(titlebarColor6), rect.X, rect.Y + 5, rect.X + rect.Width, rect.Y + 5);
        g.DrawLine(new Pen(titlebarColor7), rect.X, rect.Y + 6, rect.X + rect.Width, rect.Y + 6);

        // Center the titlebar grip.
        g.DrawImage(
            titlebarGrip,
            new Point(rect.X + ((rect.Width / 2) - (titlebarGrip.Width / 2)),
            rect.Y + 1));
    }

    // This method handles the RenderGrip event.
    protected override void OnRenderGrip(ToolStripGripRenderEventArgs e)
    {
        DrawTitleBar(
            e.Graphics,
            new Rectangle(0, 0, e.ToolStrip.Width, 7));
    }

    // This method handles the RenderToolStripBorder event.
    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    {
        DrawTitleBar(
            e.Graphics,
            new Rectangle(0, 0, e.ToolStrip.Width, 7));
    }

    // This method handles the RenderButtonBackground event.
    protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
    {
        Graphics g = e.Graphics;
        Rectangle bounds = new Rectangle(Point.Empty, e.Item.Size);

        Color gradientBegin = Color.FromArgb(203, 225, 252);
        Color gradientEnd = Color.FromArgb(125, 165, 224);

        ToolStripButton button = e.Item as ToolStripButton;
        if (button.Pressed || button.Checked)
        {
            gradientBegin = Color.FromArgb(254, 128, 62);
            gradientEnd = Color.FromArgb(255, 223, 154);
        }
        else if (button.Selected)
        {
            gradientBegin = Color.FromArgb(255, 255, 222);
            gradientEnd = Color.FromArgb(255, 203, 136);
        }

        using (Brush b = new LinearGradientBrush(
            bounds,
            gradientBegin,
            gradientEnd,
            LinearGradientMode.Vertical))
        {
            g.FillRectangle(b, bounds);
        }

        e.Graphics.DrawRectangle(
            SystemPens.ControlDarkDark,
            bounds);

        g.DrawLine(
            SystemPens.ControlDarkDark,
            bounds.X,
            bounds.Y,
            bounds.Width - 1,
            bounds.Y);

        g.DrawLine(
            SystemPens.ControlDarkDark,
            bounds.X,
            bounds.Y,
            bounds.X,
            bounds.Height - 1);

        ToolStrip toolStrip = button.Owner;
        ToolStripButton nextItem = button.Owner.GetItemAt(
            button.Bounds.X,
            button.Bounds.Bottom + 1) as ToolStripButton;

        if (nextItem == null)
        {
            g.DrawLine(
                SystemPens.ControlDarkDark,
                bounds.X,
                bounds.Height - 1,
                bounds.X + bounds.Width - 1,
                bounds.Height - 1);
        }
    }
}
Friend Class StackRenderer
   Inherits ToolStripProfessionalRenderer
   Private Shared titleBarGripBmp As Bitmap
   Private Shared titleBarGripEnc As String = "Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+"
   
   ' Define titlebar colors.
   Private Shared titlebarColor1 As Color = Color.FromArgb(89, 135, 214)
   Private Shared titlebarColor2 As Color = Color.FromArgb(76, 123, 204)
   Private Shared titlebarColor3 As Color = Color.FromArgb(63, 111, 194)
   Private Shared titlebarColor4 As Color = Color.FromArgb(50, 99, 184)
   Private Shared titlebarColor5 As Color = Color.FromArgb(38, 88, 174)
   Private Shared titlebarColor6 As Color = Color.FromArgb(25, 76, 164)
   Private Shared titlebarColor7 As Color = Color.FromArgb(12, 64, 154)
   Private Shared borderColor As Color = Color.FromArgb(0, 0, 128)
   
   Shared Sub New()
      titleBarGripBmp = StackView.DeserializeFromBase64(titleBarGripEnc)
     End Sub
   
   Public Sub New()
     End Sub
   
     Private Sub DrawTitleBar(ByVal g As Graphics, ByVal rect As Rectangle)

         ' Assign the image for the grip.
         Dim titlebarGrip As Image = titleBarGripBmp

         ' Fill the titlebar. 
         ' This produces the gradient and the rounded-corner effect.
         g.DrawLine(New Pen(titlebarColor1), rect.X, rect.Y, rect.X + rect.Width, rect.Y)
         g.DrawLine(New Pen(titlebarColor2), rect.X, rect.Y + 1, rect.X + rect.Width, rect.Y + 1)
         g.DrawLine(New Pen(titlebarColor3), rect.X, rect.Y + 2, rect.X + rect.Width, rect.Y + 2)
         g.DrawLine(New Pen(titlebarColor4), rect.X, rect.Y + 3, rect.X + rect.Width, rect.Y + 3)
         g.DrawLine(New Pen(titlebarColor5), rect.X, rect.Y + 4, rect.X + rect.Width, rect.Y + 4)
         g.DrawLine(New Pen(titlebarColor6), rect.X, rect.Y + 5, rect.X + rect.Width, rect.Y + 5)
         g.DrawLine(New Pen(titlebarColor7), rect.X, rect.Y + 6, rect.X + rect.Width, rect.Y + 6)

         ' Center the titlebar grip.
         g.DrawImage(titlebarGrip, New Point(rect.X + (rect.Width / 2 - titlebarGrip.Width / 2), rect.Y + 1))
     End Sub
   
   
   ' This method handles the RenderGrip event.
   Protected Overrides Sub OnRenderGrip(e As ToolStripGripRenderEventArgs)
      DrawTitleBar(e.Graphics, New Rectangle(0, 0, e.ToolStrip.Width, 7))
     End Sub
   
   
   ' This method handles the RenderToolStripBorder event.
   Protected Overrides Sub OnRenderToolStripBorder(e As ToolStripRenderEventArgs)
      DrawTitleBar(e.Graphics, New Rectangle(0, 0, e.ToolStrip.Width, 7))
     End Sub
   
   
   ' This method handles the RenderButtonBackground event.
   Protected Overrides Sub OnRenderButtonBackground(e As ToolStripItemRenderEventArgs)
      Dim g As Graphics = e.Graphics
      Dim bounds As New Rectangle(Point.Empty, e.Item.Size)
      
      Dim gradientBegin As Color = Color.FromArgb(203, 225, 252)
      Dim gradientEnd As Color = Color.FromArgb(125, 165, 224)
      
         Dim button As ToolStripButton = CType(e.Item, ToolStripButton)
      
      If button.Pressed OrElse button.Checked Then
         gradientBegin = Color.FromArgb(254, 128, 62)
         gradientEnd = Color.FromArgb(255, 223, 154)
      ElseIf button.Selected Then
         gradientBegin = Color.FromArgb(255, 255, 222)
         gradientEnd = Color.FromArgb(255, 203, 136)
      End If
      
      Dim b = New LinearGradientBrush(bounds, gradientBegin, gradientEnd, LinearGradientMode.Vertical)
      Try
         g.FillRectangle(b, bounds)
      Finally
         b.Dispose()
      End Try
      
      e.Graphics.DrawRectangle(SystemPens.ControlDarkDark, bounds)
      
      g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Y, bounds.Width - 1, bounds.Y)
      
      g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Y, bounds.X, bounds.Height - 1)
      
      Dim toolStrip As ToolStrip = button.Owner
         Dim nextItem As ToolStripButton = CType(button.Owner.GetItemAt(button.Bounds.X, button.Bounds.Bottom + 1), ToolStripButton)
      
      If nextItem Is Nothing Then
         g.DrawLine(SystemPens.ControlDarkDark, bounds.X, bounds.Height - 1, bounds.X + bounds.Width - 1, bounds.Height - 1)
      End If
     End Sub
 End Class

Комментарии

ToolStripProfessionalRenderer создает ручки и кисти на основе заменяемой таблицы цветов с именем ProfessionalColorTable.

Конструкторы

ToolStripProfessionalRenderer()

Инициализирует новый экземпляр класса ToolStripProfessionalRenderer.

ToolStripProfessionalRenderer(ProfessionalColorTable)

Инициализирует новый экземпляр класса ToolStripProfessionalRenderer.

Свойства

ColorTable

Возвращает цветовую палитру, используемую для рисования.

RoundedEdges

Возвращает или задает значение, указывающее, имеют ли элементы управления скругленные очертания вместо прямоугольных и резких.

Методы

DrawArrow(ToolStripArrowRenderEventArgs)

Рисует стрелку в элементе ToolStripItem.

(Унаследовано от ToolStripRenderer)
DrawButtonBackground(ToolStripItemRenderEventArgs)

Рисует фон для кнопки ToolStripButton.

(Унаследовано от ToolStripRenderer)
DrawDropDownButtonBackground(ToolStripItemRenderEventArgs)

Рисует фон для кнопки ToolStripDropDownButton.

(Унаследовано от ToolStripRenderer)
DrawGrip(ToolStripGripRenderEventArgs)

Рисует маркер перемещения для элемента ToolStrip.

(Унаследовано от ToolStripRenderer)
DrawImageMargin(ToolStripRenderEventArgs)

Рисует поля вокруг изображения в элементе ToolStrip.

(Унаследовано от ToolStripRenderer)
DrawItemBackground(ToolStripItemRenderEventArgs)

Рисует фон для кнопки ToolStripItem.

(Унаследовано от ToolStripRenderer)
DrawItemCheck(ToolStripItemImageRenderEventArgs)

Рисует на элементе ToolStripItem изображение, которое показывает, что этот элемент выбран.

(Унаследовано от ToolStripRenderer)
DrawItemImage(ToolStripItemImageRenderEventArgs)

Рисует изображение на элементе ToolStripItem.

(Унаследовано от ToolStripRenderer)
DrawItemText(ToolStripItemTextRenderEventArgs)

Рисует текст в элементе ToolStripItem.

(Унаследовано от ToolStripRenderer)
DrawLabelBackground(ToolStripItemRenderEventArgs)

Рисует фон для кнопки ToolStripLabel.

(Унаследовано от ToolStripRenderer)
DrawMenuItemBackground(ToolStripItemRenderEventArgs)

Рисует фон для кнопки ToolStripMenuItem.

(Унаследовано от ToolStripRenderer)
DrawOverflowButtonBackground(ToolStripItemRenderEventArgs)

Рисует фон для кнопки переполнения.

(Унаследовано от ToolStripRenderer)
DrawSeparator(ToolStripSeparatorRenderEventArgs)

Рисует объект ToolStripSeparator.

(Унаследовано от ToolStripRenderer)
DrawSplitButton(ToolStripItemRenderEventArgs)

Рисует объект ToolStripSplitButton.

(Унаследовано от ToolStripRenderer)
DrawStatusStripSizingGrip(ToolStripRenderEventArgs)

Рисует захват для изменения размера.

(Унаследовано от ToolStripRenderer)
DrawToolStripBackground(ToolStripRenderEventArgs)

Рисует фон для кнопки ToolStrip.

(Унаследовано от ToolStripRenderer)
DrawToolStripBorder(ToolStripRenderEventArgs)

Рисует границы для элемента ToolStrip.

(Унаследовано от ToolStripRenderer)
DrawToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Рисует фон элемента ToolStripContentPanel.

(Унаследовано от ToolStripRenderer)
DrawToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Рисует фон элемента ToolStripPanel.

(Унаследовано от ToolStripRenderer)
DrawToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Рисует фон элемента ToolStripStatusLabel.

(Унаследовано от ToolStripRenderer)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Initialize(ToolStrip)

В случае переопределения в производном классе выполняет нестандартную инициализацию заданного элемента ToolStrip.

(Унаследовано от ToolStripRenderer)
InitializeContentPanel(ToolStripContentPanel)

Инициализирует заданный элемент ToolStripContentPanel.

(Унаследовано от ToolStripRenderer)
InitializeItem(ToolStripItem)

В случае переопределения в производном классе выполняет нестандартную инициализацию заданного элемента ToolStripItem.

(Унаследовано от ToolStripRenderer)
InitializePanel(ToolStripPanel)

Инициализирует заданный элемент ToolStripPanel.

(Унаследовано от ToolStripRenderer)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
OnRenderArrow(ToolStripArrowRenderEventArgs)

Вызывает событие RenderArrow.

OnRenderButtonBackground(ToolStripItemRenderEventArgs)

Вызывает событие RenderButtonBackground.

OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs)

Вызывает событие RenderDropDownButtonBackground.

OnRenderGrip(ToolStripGripRenderEventArgs)

Вызывает событие RenderGrip.

OnRenderImageMargin(ToolStripRenderEventArgs)

Рисует фон элемента.

OnRenderItemBackground(ToolStripItemRenderEventArgs)

Вызывает событие OnRenderItemBackground(ToolStripItemRenderEventArgs).

(Унаследовано от ToolStripRenderer)
OnRenderItemCheck(ToolStripItemImageRenderEventArgs)

Вызывает событие RenderItemCheck.

OnRenderItemImage(ToolStripItemImageRenderEventArgs)

Вызывает событие RenderItemImage.

OnRenderItemText(ToolStripItemTextRenderEventArgs)

Вызывает событие RenderItemText.

OnRenderLabelBackground(ToolStripItemRenderEventArgs)

Вызывает событие RenderLabelBackground.

OnRenderMenuItemBackground(ToolStripItemRenderEventArgs)

Вызывает событие RenderMenuItemBackground.

OnRenderOverflowButtonBackground(ToolStripItemRenderEventArgs)

Вызывает событие RenderOverflowButtonBackground.

OnRenderSeparator(ToolStripSeparatorRenderEventArgs)

Вызывает событие RenderSeparator.

OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs)

Вызывает событие OnRenderSplitButtonBackground.

OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs)

Вызывает событие RenderStatusStripSizingGrip.

(Унаследовано от ToolStripRenderer)
OnRenderToolStripBackground(ToolStripRenderEventArgs)

Вызывает событие RenderToolStripBackground.

OnRenderToolStripBorder(ToolStripRenderEventArgs)

Вызывает событие RenderToolStripBorder.

OnRenderToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Вызывает событие RenderToolStripContentPanelBackground.

OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Вызывает событие RenderToolStripPanelBackground.

OnRenderToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Вызывает событие RenderToolStripStatusLabelBackground.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

RenderArrow

Происходит во время отрисовки стрелки в элементе ToolStripItem.

(Унаследовано от ToolStripRenderer)
RenderButtonBackground

Создается во время отрисовки фона для кнопки ToolStripButton.

(Унаследовано от ToolStripRenderer)
RenderDropDownButtonBackground

Создается во время отрисовки фона для кнопки ToolStripDropDownButton.

(Унаследовано от ToolStripRenderer)
RenderGrip

Создается во время отрисовки маркера перемещения для элемента ToolStrip.

(Унаследовано от ToolStripRenderer)
RenderImageMargin

Рисует поля между изображением и его контейнером.

(Унаследовано от ToolStripRenderer)
RenderItemBackground

Создается во время отрисовки фона для кнопки ToolStripItem.

(Унаследовано от ToolStripRenderer)
RenderItemCheck

Создается во время отрисовки изображения для выбранного элемента ToolStripItem.

(Унаследовано от ToolStripRenderer)
RenderItemImage

Создается во время отрисовки изображения для элемента ToolStripItem.

(Унаследовано от ToolStripRenderer)
RenderItemText

Создается во время отрисовки текста для элемента ToolStripItem.

(Унаследовано от ToolStripRenderer)
RenderLabelBackground

Создается во время отрисовки фона для кнопки ToolStripLabel.

(Унаследовано от ToolStripRenderer)
RenderMenuItemBackground

Создается во время отрисовки фона для кнопки ToolStripMenuItem.

(Унаследовано от ToolStripRenderer)
RenderOverflowButtonBackground

Происходит во время отрисовки фона для кнопки переполнения.

(Унаследовано от ToolStripRenderer)
RenderSeparator

Создается во время отрисовки объекта ToolStripSeparator.

(Унаследовано от ToolStripRenderer)
RenderSplitButtonBackground

Создается во время отрисовки фона для кнопки ToolStripSplitButton.

(Унаследовано от ToolStripRenderer)
RenderStatusStripSizingGrip

Происходит при изменении стиля отображения.

(Унаследовано от ToolStripRenderer)
RenderToolStripBackground

Создается во время отрисовки фона для кнопки ToolStrip.

(Унаследовано от ToolStripRenderer)
RenderToolStripBorder

Создается во время отрисовки границ для элемента ToolStrip.

(Унаследовано от ToolStripRenderer)
RenderToolStripContentPanelBackground

Рисует фон для панели ToolStripContentPanel.

(Унаследовано от ToolStripRenderer)
RenderToolStripPanelBackground

Рисует фон для панели ToolStripPanel.

(Унаследовано от ToolStripRenderer)
RenderToolStripStatusLabelBackground

Рисует фон для панели ToolStripStatusLabel.

(Унаследовано от ToolStripRenderer)

Применяется к