ToolStripProfessionalRenderer Classe

Definizione

Gestisce la funzionalità di disegno per gli oggetti ToolStrip, con l'applicazione di una tavolozza personalizzata e di uno stile streamlined.

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
Ereditarietà
ToolStripProfessionalRenderer

Esempio

Nell'esempio di codice seguente viene illustrato come creare un controllo composito che simula il riquadro di spostamento fornito da Microsoft® Outlook.® Per un elenco di codice completo, vedere Procedura: Creare un controllo ToolStrip in stile professionale.

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

Commenti

ToolStripProfessionalRenderer crea penne e pennelli in base a una tabella di colori sostituibile denominata ProfessionalColorTable.

Costruttori

ToolStripProfessionalRenderer()

Inizializza una nuova istanza della classe ToolStripProfessionalRenderer.

ToolStripProfessionalRenderer(ProfessionalColorTable)

Inizializza una nuova istanza della classe ToolStripProfessionalRenderer.

Proprietà

ColorTable

Ottiene la tavolozza di colori usata per il disegno.

RoundedEdges

Ottiene o imposta un valore che indica se l'aspetto dei bordi dei controlli è arrotondato, squadrato o appuntito.

Metodi

DrawArrow(ToolStripArrowRenderEventArgs)

Disegna una freccia su un oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
DrawButtonBackground(ToolStripItemRenderEventArgs)

Crea lo sfondo per un oggetto ToolStripButton.

(Ereditato da ToolStripRenderer)
DrawDropDownButtonBackground(ToolStripItemRenderEventArgs)

Crea lo sfondo per un oggetto ToolStripDropDownButton.

(Ereditato da ToolStripRenderer)
DrawGrip(ToolStripGripRenderEventArgs)

Disegna un handle di spostamento su un oggetto ToolStrip.

(Ereditato da ToolStripRenderer)
DrawImageMargin(ToolStripRenderEventArgs)

Disegna lo spazio intorno a un'immagine su un oggetto ToolStrip.

(Ereditato da ToolStripRenderer)
DrawItemBackground(ToolStripItemRenderEventArgs)

Crea lo sfondo per un oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
DrawItemCheck(ToolStripItemImageRenderEventArgs)

Disegna un'immagine su un oggetto ToolStripItem che indica che l'elemento è selezionato.

(Ereditato da ToolStripRenderer)
DrawItemImage(ToolStripItemImageRenderEventArgs)

Disegna un'immagine su un oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
DrawItemText(ToolStripItemTextRenderEventArgs)

Disegna del testo su un oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
DrawLabelBackground(ToolStripItemRenderEventArgs)

Crea lo sfondo per un oggetto ToolStripLabel.

(Ereditato da ToolStripRenderer)
DrawMenuItemBackground(ToolStripItemRenderEventArgs)

Crea lo sfondo per un oggetto ToolStripMenuItem.

(Ereditato da ToolStripRenderer)
DrawOverflowButtonBackground(ToolStripItemRenderEventArgs)

Disegna lo sfondo per un pulsante di overflow.

(Ereditato da ToolStripRenderer)
DrawSeparator(ToolStripSeparatorRenderEventArgs)

Disegna un oggetto ToolStripSeparator.

(Ereditato da ToolStripRenderer)
DrawSplitButton(ToolStripItemRenderEventArgs)

Disegna un oggetto ToolStripSplitButton.

(Ereditato da ToolStripRenderer)
DrawStatusStripSizingGrip(ToolStripRenderEventArgs)

Disegna un riquadro di ridimensionamento.

(Ereditato da ToolStripRenderer)
DrawToolStripBackground(ToolStripRenderEventArgs)

Crea lo sfondo per un oggetto ToolStrip.

(Ereditato da ToolStripRenderer)
DrawToolStripBorder(ToolStripRenderEventArgs)

Disegna il bordo di un oggetto ToolStrip.

(Ereditato da ToolStripRenderer)
DrawToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Disegna lo sfondo dell'oggetto ToolStripContentPanel.

(Ereditato da ToolStripRenderer)
DrawToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Disegna lo sfondo dell'oggetto ToolStripPanel.

(Ereditato da ToolStripRenderer)
DrawToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Disegna lo sfondo dell'oggetto ToolStripStatusLabel.

(Ereditato da ToolStripRenderer)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Initialize(ToolStrip)

Quando è sottoposta a override in una classe derivata, fornisce un'inizializzazione personalizzata di un determinato oggetto ToolStrip.

(Ereditato da ToolStripRenderer)
InitializeContentPanel(ToolStripContentPanel)

Inizializza l'oggetto ToolStripContentPanel specificato.

(Ereditato da ToolStripRenderer)
InitializeItem(ToolStripItem)

Quando è sottoposta a override in una classe derivata, fornisce un'inizializzazione personalizzata di un determinato oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
InitializePanel(ToolStripPanel)

Inizializza l'oggetto ToolStripPanel specificato.

(Ereditato da ToolStripRenderer)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnRenderArrow(ToolStripArrowRenderEventArgs)

Genera l'evento RenderArrow.

OnRenderButtonBackground(ToolStripItemRenderEventArgs)

Genera l'evento RenderButtonBackground.

OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs)

Genera l'evento RenderDropDownButtonBackground.

OnRenderGrip(ToolStripGripRenderEventArgs)

Genera l'evento RenderGrip.

OnRenderImageMargin(ToolStripRenderEventArgs)

Disegna lo sfondo di un elemento.

OnRenderItemBackground(ToolStripItemRenderEventArgs)

Genera l'evento OnRenderItemBackground(ToolStripItemRenderEventArgs).

(Ereditato da ToolStripRenderer)
OnRenderItemCheck(ToolStripItemImageRenderEventArgs)

Genera l'evento RenderItemCheck.

OnRenderItemImage(ToolStripItemImageRenderEventArgs)

Genera l'evento RenderItemImage.

OnRenderItemText(ToolStripItemTextRenderEventArgs)

Genera l'evento RenderItemText.

OnRenderLabelBackground(ToolStripItemRenderEventArgs)

Genera l'evento RenderLabelBackground.

OnRenderMenuItemBackground(ToolStripItemRenderEventArgs)

Genera l'evento RenderMenuItemBackground.

OnRenderOverflowButtonBackground(ToolStripItemRenderEventArgs)

Genera l'evento RenderOverflowButtonBackground.

OnRenderSeparator(ToolStripSeparatorRenderEventArgs)

Genera l'evento RenderSeparator.

OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs)

Genera l'evento OnRenderSplitButtonBackground.

OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs)

Genera l'evento RenderStatusStripSizingGrip.

(Ereditato da ToolStripRenderer)
OnRenderToolStripBackground(ToolStripRenderEventArgs)

Genera l'evento RenderToolStripBackground.

OnRenderToolStripBorder(ToolStripRenderEventArgs)

Genera l'evento RenderToolStripBorder.

OnRenderToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Genera l'evento RenderToolStripContentPanelBackground.

OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Genera l'evento RenderToolStripPanelBackground.

OnRenderToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Genera l'evento RenderToolStripStatusLabelBackground.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

RenderArrow

Viene generato quando viene eseguito il rendering di una freccia su un oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
RenderButtonBackground

Viene generato quando viene eseguito il rendering dello sfondo per un oggetto ToolStripButton.

(Ereditato da ToolStripRenderer)
RenderDropDownButtonBackground

Viene generato quando viene eseguito il rendering dello sfondo per un oggetto ToolStripDropDownButton.

(Ereditato da ToolStripRenderer)
RenderGrip

Viene generato quando viene eseguito il rendering dell'handle di spostamento di un oggetto ToolStrip.

(Ereditato da ToolStripRenderer)
RenderImageMargin

Disegna il margine presente tra un'immagine e il relativo contenitore.

(Ereditato da ToolStripRenderer)
RenderItemBackground

Viene generato quando viene eseguito il rendering dello sfondo per un oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
RenderItemCheck

Viene generato quando viene eseguito il rendering dell'immagine di un oggetto ToolStripItem selezionato.

(Ereditato da ToolStripRenderer)
RenderItemImage

Viene generato quando viene eseguito il rendering dell'immagine per un oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
RenderItemText

Viene generato quando viene eseguito il rendering del testo per un oggetto ToolStripItem.

(Ereditato da ToolStripRenderer)
RenderLabelBackground

Viene generato quando viene eseguito il rendering dello sfondo per un oggetto ToolStripLabel.

(Ereditato da ToolStripRenderer)
RenderMenuItemBackground

Viene generato quando viene eseguito il rendering dello sfondo per un oggetto ToolStripMenuItem.

(Ereditato da ToolStripRenderer)
RenderOverflowButtonBackground

Si verifica quando viene eseguito il rendering dello sfondo per un pulsante di overflow.

(Ereditato da ToolStripRenderer)
RenderSeparator

Viene generato quando viene eseguito il rendering di un oggetto ToolStripSeparator.

(Ereditato da ToolStripRenderer)
RenderSplitButtonBackground

Viene generato quando viene eseguito il rendering dello sfondo per un oggetto ToolStripSplitButton.

(Ereditato da ToolStripRenderer)
RenderStatusStripSizingGrip

Si verifica quando viene modificato lo stile di visualizzazione.

(Ereditato da ToolStripRenderer)
RenderToolStripBackground

Viene generato quando viene eseguito il rendering dello sfondo per un oggetto ToolStrip.

(Ereditato da ToolStripRenderer)
RenderToolStripBorder

Viene generato quando viene eseguito il rendering del bordo per un oggetto ToolStrip.

(Ereditato da ToolStripRenderer)
RenderToolStripContentPanelBackground

Disegna lo sfondo di un oggetto ToolStripContentPanel.

(Ereditato da ToolStripRenderer)
RenderToolStripPanelBackground

Disegna lo sfondo di un oggetto ToolStripPanel.

(Ereditato da ToolStripRenderer)
RenderToolStripStatusLabelBackground

Disegna lo sfondo di un oggetto ToolStripStatusLabel.

(Ereditato da ToolStripRenderer)

Si applica a