Compartir a través de


ToolStripProfessionalRenderer Clase

Definición

Controla la funcionalidad de dibujo de los objetos ToolStrip, mediante la aplicación de una paleta personalizada y un estilo optimizado.

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
Herencia
ToolStripProfessionalRenderer

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear un control compuesto que imita el panel de navegación proporcionado por Microsoft® Outlook®. Para obtener una lista de código completa, vea How to: Create a Professionally Styled ToolStrip Control.

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

Comentarios

ToolStripProfessionalRenderer crea lápices y pinceles basados en una tabla de colores reemplazable denominada ProfessionalColorTable.

Constructores

ToolStripProfessionalRenderer()

Inicializa una nueva instancia de la clase ToolStripProfessionalRenderer.

ToolStripProfessionalRenderer(ProfessionalColorTable)

Inicializa una nueva instancia de la clase ToolStripProfessionalRenderer.

Propiedades

ColorTable

Obtiene la paleta de colores que se utiliza para dibujar.

RoundedEdges

Obtiene o establece un valor que indica si los bordes de los controles tienen un aspecto redondeado en lugar de cuadrado o anguloso.

Métodos

DrawArrow(ToolStripArrowRenderEventArgs)

Dibuja una flecha en un objeto ToolStripItem.

(Heredado de ToolStripRenderer)
DrawButtonBackground(ToolStripItemRenderEventArgs)

Dibuja el fondo de un objeto ToolStripButton.

(Heredado de ToolStripRenderer)
DrawDropDownButtonBackground(ToolStripItemRenderEventArgs)

Dibuja el fondo de un objeto ToolStripDropDownButton.

(Heredado de ToolStripRenderer)
DrawGrip(ToolStripGripRenderEventArgs)

Dibuja un controlador de movimiento en un objeto ToolStrip.

(Heredado de ToolStripRenderer)
DrawImageMargin(ToolStripRenderEventArgs)

Dibuja el espacio que rodea una imagen en un objeto ToolStrip.

(Heredado de ToolStripRenderer)
DrawItemBackground(ToolStripItemRenderEventArgs)

Dibuja el fondo de un objeto ToolStripItem.

(Heredado de ToolStripRenderer)
DrawItemCheck(ToolStripItemImageRenderEventArgs)

Dibuja una imagen en un objeto ToolStripItem que indica que el elemento se encuentra en un estado seleccionado.

(Heredado de ToolStripRenderer)
DrawItemImage(ToolStripItemImageRenderEventArgs)

Dibuja una imagen en un objeto ToolStripItem.

(Heredado de ToolStripRenderer)
DrawItemText(ToolStripItemTextRenderEventArgs)

Dibuja texto en un objeto ToolStripItem.

(Heredado de ToolStripRenderer)
DrawLabelBackground(ToolStripItemRenderEventArgs)

Dibuja el fondo de un objeto ToolStripLabel.

(Heredado de ToolStripRenderer)
DrawMenuItemBackground(ToolStripItemRenderEventArgs)

Dibuja el fondo de un objeto ToolStripMenuItem.

(Heredado de ToolStripRenderer)
DrawOverflowButtonBackground(ToolStripItemRenderEventArgs)

Dibuja el fondo de un botón de desbordamiento.

(Heredado de ToolStripRenderer)
DrawSeparator(ToolStripSeparatorRenderEventArgs)

Dibuja un ToolStripSeparator.

(Heredado de ToolStripRenderer)
DrawSplitButton(ToolStripItemRenderEventArgs)

Dibuja un ToolStripSplitButton.

(Heredado de ToolStripRenderer)
DrawStatusStripSizingGrip(ToolStripRenderEventArgs)

Dibuja un control de tamaño.

(Heredado de ToolStripRenderer)
DrawToolStripBackground(ToolStripRenderEventArgs)

Dibuja el fondo de un objeto ToolStrip.

(Heredado de ToolStripRenderer)
DrawToolStripBorder(ToolStripRenderEventArgs)

Dibuja el borde de un objeto ToolStrip.

(Heredado de ToolStripRenderer)
DrawToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Dibuja el fondo del objeto ToolStripContentPanel.

(Heredado de ToolStripRenderer)
DrawToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Dibuja el fondo del objeto ToolStripPanel.

(Heredado de ToolStripRenderer)
DrawToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Dibuja el fondo del objeto ToolStripStatusLabel.

(Heredado de ToolStripRenderer)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Initialize(ToolStrip)

Cuando se reemplaza en una clase derivada, proporciona una inicialización personalizada del objeto ToolStrip especificado.

(Heredado de ToolStripRenderer)
InitializeContentPanel(ToolStripContentPanel)

Inicializa el objeto ToolStripContentPanel especificado.

(Heredado de ToolStripRenderer)
InitializeItem(ToolStripItem)

Cuando se reemplaza en una clase derivada, proporciona una inicialización personalizada del objeto ToolStripItem especificado.

(Heredado de ToolStripRenderer)
InitializePanel(ToolStripPanel)

Inicializa el objeto ToolStripPanel especificado.

(Heredado de ToolStripRenderer)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnRenderArrow(ToolStripArrowRenderEventArgs)

Genera el evento RenderArrow.

OnRenderButtonBackground(ToolStripItemRenderEventArgs)

Genera el evento RenderButtonBackground.

OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs)

Genera el evento RenderDropDownButtonBackground.

OnRenderGrip(ToolStripGripRenderEventArgs)

Genera el evento RenderGrip.

OnRenderImageMargin(ToolStripRenderEventArgs)

Dibuja el fondo del elemento.

OnRenderItemBackground(ToolStripItemRenderEventArgs)

Genera el evento OnRenderItemBackground(ToolStripItemRenderEventArgs).

(Heredado de ToolStripRenderer)
OnRenderItemCheck(ToolStripItemImageRenderEventArgs)

Genera el evento RenderItemCheck.

OnRenderItemImage(ToolStripItemImageRenderEventArgs)

Genera el evento RenderItemImage.

OnRenderItemText(ToolStripItemTextRenderEventArgs)

Genera el evento RenderItemText.

OnRenderLabelBackground(ToolStripItemRenderEventArgs)

Genera el evento RenderLabelBackground.

OnRenderMenuItemBackground(ToolStripItemRenderEventArgs)

Genera el evento RenderMenuItemBackground.

OnRenderOverflowButtonBackground(ToolStripItemRenderEventArgs)

Genera el evento RenderOverflowButtonBackground.

OnRenderSeparator(ToolStripSeparatorRenderEventArgs)

Genera el evento RenderSeparator.

OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs)

Genera el evento OnRenderSplitButtonBackground.

OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs)

Genera el evento RenderStatusStripSizingGrip.

(Heredado de ToolStripRenderer)
OnRenderToolStripBackground(ToolStripRenderEventArgs)

Genera el evento RenderToolStripBackground.

OnRenderToolStripBorder(ToolStripRenderEventArgs)

Genera el evento RenderToolStripBorder.

OnRenderToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Genera el evento RenderToolStripContentPanelBackground.

OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Genera el evento RenderToolStripPanelBackground.

OnRenderToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Genera el evento RenderToolStripStatusLabelBackground.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

RenderArrow

Se desencadena cuando se procesa una flecha en un objeto ToolStripItem.

(Heredado de ToolStripRenderer)
RenderButtonBackground

Se desencadena cuando se procesa el fondo de un objeto ToolStripButton.

(Heredado de ToolStripRenderer)
RenderDropDownButtonBackground

Se desencadena cuando se procesa el fondo de un objeto ToolStripDropDownButton.

(Heredado de ToolStripRenderer)
RenderGrip

Se desencadena cuando se procesa el controlador de movimiento de un objeto ToolStrip.

(Heredado de ToolStripRenderer)
RenderImageMargin

Dibuja el margen comprendido entre una imagen y su contenedor.

(Heredado de ToolStripRenderer)
RenderItemBackground

Se desencadena cuando se procesa el fondo de un objeto ToolStripItem.

(Heredado de ToolStripRenderer)
RenderItemCheck

Se desencadena cuando se procesa la imagen de un objeto ToolStripItem seleccionado.

(Heredado de ToolStripRenderer)
RenderItemImage

Se desencadena cuando se procesa la imagen de un objeto ToolStripItem.

(Heredado de ToolStripRenderer)
RenderItemText

Se desencadena cuando se procesa el texto de un objeto ToolStripItem.

(Heredado de ToolStripRenderer)
RenderLabelBackground

Se desencadena cuando se procesa el fondo de un objeto ToolStripLabel.

(Heredado de ToolStripRenderer)
RenderMenuItemBackground

Se desencadena cuando se procesa el fondo de un objeto ToolStripMenuItem.

(Heredado de ToolStripRenderer)
RenderOverflowButtonBackground

Se produce cuando se presenta el fondo de un botón de desbordamiento.

(Heredado de ToolStripRenderer)
RenderSeparator

Se desencadena cuando se procesa un objeto ToolStripSeparator.

(Heredado de ToolStripRenderer)
RenderSplitButtonBackground

Se desencadena cuando se procesa el fondo de un objeto ToolStripSplitButton.

(Heredado de ToolStripRenderer)
RenderStatusStripSizingGrip

Se produce cuando cambia el estilo de presentación.

(Heredado de ToolStripRenderer)
RenderToolStripBackground

Se desencadena cuando se procesa el fondo de un objeto ToolStrip.

(Heredado de ToolStripRenderer)
RenderToolStripBorder

Se desencadena cuando se procesa el borde de un objeto ToolStrip.

(Heredado de ToolStripRenderer)
RenderToolStripContentPanelBackground

Dibuja el fondo de un objeto ToolStripContentPanel.

(Heredado de ToolStripRenderer)
RenderToolStripPanelBackground

Dibuja el fondo de un objeto ToolStripPanel.

(Heredado de ToolStripRenderer)
RenderToolStripStatusLabelBackground

Dibuja el fondo de un objeto ToolStripStatusLabel.

(Heredado de ToolStripRenderer)

Se aplica a