Partilhar via


ToolStripProfessionalRenderer Classe

Definição

Manipula a funcionalidade de pintura para os objetos ToolStrip, aplicando uma paleta personalizada e um estilo simplificado.

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
Herança
ToolStripProfessionalRenderer

Exemplos

O exemplo de código a seguir demonstra como criar um controle composto que imita o Painel de Navegação fornecido pelo Microsoft® Outlook®. Para obter uma listagem de código completa, consulte Como criar um controle ToolStrip com estilo profissional.

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

Comentários

ToolStripProfessionalRenderer cria canetas e pincéis com base em uma tabela de cores substituível chamada ProfessionalColorTable.

Construtores

ToolStripProfessionalRenderer()

Inicializa uma nova instância da classe ToolStripProfessionalRenderer.

ToolStripProfessionalRenderer(ProfessionalColorTable)

Inicializa uma nova instância da classe ToolStripProfessionalRenderer.

Propriedades

ColorTable

Obtém a paleta de cores usada para pintura.

RoundedEdges

Obtém ou define um valor que indica se as bordas dos controles são arredondadas em vez quadradas ou curvadas.

Métodos

DrawArrow(ToolStripArrowRenderEventArgs)

Desenha uma seta em uma ToolStripItem.

(Herdado de ToolStripRenderer)
DrawButtonBackground(ToolStripItemRenderEventArgs)

Desenha a tela de fundo de um ToolStripButton.

(Herdado de ToolStripRenderer)
DrawDropDownButtonBackground(ToolStripItemRenderEventArgs)

Desenha a tela de fundo de um ToolStripDropDownButton.

(Herdado de ToolStripRenderer)
DrawGrip(ToolStripGripRenderEventArgs)

Desenha uma alça de movimentação em um ToolStrip.

(Herdado de ToolStripRenderer)
DrawImageMargin(ToolStripRenderEventArgs)

Desenha o espaço em torno de uma imagem em um ToolStrip.

(Herdado de ToolStripRenderer)
DrawItemBackground(ToolStripItemRenderEventArgs)

Desenha a tela de fundo de um ToolStripItem.

(Herdado de ToolStripRenderer)
DrawItemCheck(ToolStripItemImageRenderEventArgs)

Desenha uma imagem em um ToolStripItem que indica que o item está em um estado selecionado.

(Herdado de ToolStripRenderer)
DrawItemImage(ToolStripItemImageRenderEventArgs)

Desenha uma imagem em um ToolStripItem.

(Herdado de ToolStripRenderer)
DrawItemText(ToolStripItemTextRenderEventArgs)

Desenha texto em um ToolStripItem.

(Herdado de ToolStripRenderer)
DrawLabelBackground(ToolStripItemRenderEventArgs)

Desenha a tela de fundo de um ToolStripLabel.

(Herdado de ToolStripRenderer)
DrawMenuItemBackground(ToolStripItemRenderEventArgs)

Desenha a tela de fundo de um ToolStripMenuItem.

(Herdado de ToolStripRenderer)
DrawOverflowButtonBackground(ToolStripItemRenderEventArgs)

Desenha a tela de fundo de um botão de estouro.

(Herdado de ToolStripRenderer)
DrawSeparator(ToolStripSeparatorRenderEventArgs)

Desenha um ToolStripSeparator.

(Herdado de ToolStripRenderer)
DrawSplitButton(ToolStripItemRenderEventArgs)

Desenha um ToolStripSplitButton.

(Herdado de ToolStripRenderer)
DrawStatusStripSizingGrip(ToolStripRenderEventArgs)

Desenha uma alça de dimensionamento.

(Herdado de ToolStripRenderer)
DrawToolStripBackground(ToolStripRenderEventArgs)

Desenha a tela de fundo de um ToolStrip.

(Herdado de ToolStripRenderer)
DrawToolStripBorder(ToolStripRenderEventArgs)

Desenha a borda de um ToolStrip.

(Herdado de ToolStripRenderer)
DrawToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Desenha a tela de fundo do ToolStripContentPanel.

(Herdado de ToolStripRenderer)
DrawToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Desenha a tela de fundo do ToolStripPanel.

(Herdado de ToolStripRenderer)
DrawToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Desenha a tela de fundo do ToolStripStatusLabel.

(Herdado de ToolStripRenderer)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Initialize(ToolStrip)

Quando substituído em uma classe derivada, fornece inicialização personalizada do ToolStrip fornecido.

(Herdado de ToolStripRenderer)
InitializeContentPanel(ToolStripContentPanel)

Inicializa o ToolStripContentPanel especificado.

(Herdado de ToolStripRenderer)
InitializeItem(ToolStripItem)

Quando substituído em uma classe derivada, fornece inicialização personalizada do ToolStripItem fornecido.

(Herdado de ToolStripRenderer)
InitializePanel(ToolStripPanel)

Inicializa o ToolStripPanel especificado.

(Herdado de ToolStripRenderer)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnRenderArrow(ToolStripArrowRenderEventArgs)

Aciona o evento RenderArrow.

OnRenderButtonBackground(ToolStripItemRenderEventArgs)

Aciona o evento RenderButtonBackground.

OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs)

Aciona o evento RenderDropDownButtonBackground.

OnRenderGrip(ToolStripGripRenderEventArgs)

Aciona o evento RenderGrip.

OnRenderImageMargin(ToolStripRenderEventArgs)

Desenha a tela de fundo do item.

OnRenderItemBackground(ToolStripItemRenderEventArgs)

Aciona o evento OnRenderItemBackground(ToolStripItemRenderEventArgs).

(Herdado de ToolStripRenderer)
OnRenderItemCheck(ToolStripItemImageRenderEventArgs)

Aciona o evento RenderItemCheck.

OnRenderItemImage(ToolStripItemImageRenderEventArgs)

Aciona o evento RenderItemImage.

OnRenderItemText(ToolStripItemTextRenderEventArgs)

Aciona o evento RenderItemText.

OnRenderLabelBackground(ToolStripItemRenderEventArgs)

Aciona o evento RenderLabelBackground.

OnRenderMenuItemBackground(ToolStripItemRenderEventArgs)

Aciona o evento RenderMenuItemBackground.

OnRenderOverflowButtonBackground(ToolStripItemRenderEventArgs)

Aciona o evento RenderOverflowButtonBackground.

OnRenderSeparator(ToolStripSeparatorRenderEventArgs)

Aciona o evento RenderSeparator.

OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs)

Aciona o evento OnRenderSplitButtonBackground.

OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs)

Aciona o evento RenderStatusStripSizingGrip.

(Herdado de ToolStripRenderer)
OnRenderToolStripBackground(ToolStripRenderEventArgs)

Aciona o evento RenderToolStripBackground.

OnRenderToolStripBorder(ToolStripRenderEventArgs)

Aciona o evento RenderToolStripBorder.

OnRenderToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Aciona o evento RenderToolStripContentPanelBackground.

OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Aciona o evento RenderToolStripPanelBackground.

OnRenderToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Aciona o evento RenderToolStripStatusLabelBackground.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

RenderArrow

Ocorre quando uma seta em um ToolStripItem é renderizada.

(Herdado de ToolStripRenderer)
RenderButtonBackground

Ocorre quando a tela de fundo de um ToolStripButton é renderizado.

(Herdado de ToolStripRenderer)
RenderDropDownButtonBackground

Ocorre quando a tela de fundo de um ToolStripDropDownButton é renderizado.

(Herdado de ToolStripRenderer)
RenderGrip

Ocorre quando a alça de movimentação de um ToolStrip é renderizada.

(Herdado de ToolStripRenderer)
RenderImageMargin

Desenha a margem entre uma imagem e seu contêiner.

(Herdado de ToolStripRenderer)
RenderItemBackground

Ocorre quando a tela de fundo de um ToolStripItem é renderizado.

(Herdado de ToolStripRenderer)
RenderItemCheck

Ocorre quando a imagem de um ToolStripItem selecionado é renderizada.

(Herdado de ToolStripRenderer)
RenderItemImage

Ocorre quando a imagem de um ToolStripItem é renderizada.

(Herdado de ToolStripRenderer)
RenderItemText

Ocorre quando o texto de um ToolStripItem é renderizado.

(Herdado de ToolStripRenderer)
RenderLabelBackground

Ocorre quando a tela de fundo de um ToolStripLabel é renderizado.

(Herdado de ToolStripRenderer)
RenderMenuItemBackground

Ocorre quando a tela de fundo de um ToolStripMenuItem é renderizado.

(Herdado de ToolStripRenderer)
RenderOverflowButtonBackground

Ocorre quando a tela de fundo de um botão de estouro é renderizado.

(Herdado de ToolStripRenderer)
RenderSeparator

Ocorre quando um ToolStripSeparator é renderizado.

(Herdado de ToolStripRenderer)
RenderSplitButtonBackground

Ocorre quando a tela de fundo de um ToolStripSplitButton é renderizado.

(Herdado de ToolStripRenderer)
RenderStatusStripSizingGrip

Ocorre quando o estilo de exibição é alterado.

(Herdado de ToolStripRenderer)
RenderToolStripBackground

Ocorre quando a tela de fundo de um ToolStrip é renderizado.

(Herdado de ToolStripRenderer)
RenderToolStripBorder

Ocorre quando a borda de um ToolStrip é renderizada.

(Herdado de ToolStripRenderer)
RenderToolStripContentPanelBackground

Desenha a tela de fundo de um ToolStripContentPanel.

(Herdado de ToolStripRenderer)
RenderToolStripPanelBackground

Desenha a tela de fundo de um ToolStripPanel.

(Herdado de ToolStripRenderer)
RenderToolStripStatusLabelBackground

Desenha a tela de fundo de um ToolStripStatusLabel.

(Herdado de ToolStripRenderer)

Aplica-se a