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

Примеры

В следующем примере кода показано, как создать составной элемент управления, который имитирует область Navigation Pane предоставляемый 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)

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