Freigeben über


ToolStripProfessionalRenderer Klasse

Definition

Behandelt die Zeichenfunktionen für ToolStrip-Objekte und wendet eine benutzerdefinierte Palette und einen vereinfachten Stil an.

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein zusammengesetztes Steuerelement erstellen, das den von Microsoft® Outlook® bereitgestellten Navigationsbereich imitiert. Eine vollständige Codeauflistung finden Sie unter Vorgehensweise: Erstellen eines professionell formatierten ToolStrip-Steuerelements.

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

Hinweise

ToolStripProfessionalRenderer erstellt Stifte und Pinsel basierend auf einer ersetzbaren Farbtabelle namens ProfessionalColorTable.

Konstruktoren

ToolStripProfessionalRenderer()

Initialisiert eine neue Instanz der ToolStripProfessionalRenderer-Klasse.

ToolStripProfessionalRenderer(ProfessionalColorTable)

Initialisiert eine neue Instanz der ToolStripProfessionalRenderer-Klasse.

Eigenschaften

ColorTable

Ruft die zum Zeichnen verwendete Farbpalette ab.

RoundedEdges

Ruft den Wert ab, der angibt, ob die Ränder der Steuerelemente abgerundet oder quadratisch bzw. eckig sind, oder legt diesen Wert fest.

Methoden

DrawArrow(ToolStripArrowRenderEventArgs)

Zeichnet einen Pfeil auf einem ToolStripItem.

(Geerbt von ToolStripRenderer)
DrawButtonBackground(ToolStripItemRenderEventArgs)

Zeichnet den Hintergrund für einen ToolStripButton.

(Geerbt von ToolStripRenderer)
DrawDropDownButtonBackground(ToolStripItemRenderEventArgs)

Zeichnet den Hintergrund für einen ToolStripDropDownButton.

(Geerbt von ToolStripRenderer)
DrawGrip(ToolStripGripRenderEventArgs)

Zeichnet einen Verschiebepunkt auf einem ToolStrip.

(Geerbt von ToolStripRenderer)
DrawImageMargin(ToolStripRenderEventArgs)

Zeichnet den Leerraum um ein Bild auf einem ToolStrip.

(Geerbt von ToolStripRenderer)
DrawItemBackground(ToolStripItemRenderEventArgs)

Zeichnet den Hintergrund für einen ToolStripItem.

(Geerbt von ToolStripRenderer)
DrawItemCheck(ToolStripItemImageRenderEventArgs)

Zeichnet ein Bild auf einem ToolStripItem, das angibt, dass sich das Element im ausgewählten Zustand befindet.

(Geerbt von ToolStripRenderer)
DrawItemImage(ToolStripItemImageRenderEventArgs)

Zeichnet ein Bild auf einem ToolStripItem.

(Geerbt von ToolStripRenderer)
DrawItemText(ToolStripItemTextRenderEventArgs)

Zeichnet Text auf einem ToolStripItem.

(Geerbt von ToolStripRenderer)
DrawLabelBackground(ToolStripItemRenderEventArgs)

Zeichnet den Hintergrund für einen ToolStripLabel.

(Geerbt von ToolStripRenderer)
DrawMenuItemBackground(ToolStripItemRenderEventArgs)

Zeichnet den Hintergrund für einen ToolStripMenuItem.

(Geerbt von ToolStripRenderer)
DrawOverflowButtonBackground(ToolStripItemRenderEventArgs)

Zeichnet den Hintergrund einer Überlaufschaltfläche.

(Geerbt von ToolStripRenderer)
DrawSeparator(ToolStripSeparatorRenderEventArgs)

Zeichnet einen ToolStripSeparator.

(Geerbt von ToolStripRenderer)
DrawSplitButton(ToolStripItemRenderEventArgs)

Zeichnet einen ToolStripSplitButton.

(Geerbt von ToolStripRenderer)
DrawStatusStripSizingGrip(ToolStripRenderEventArgs)

Zeichnet einen Größenziehpunkt.

(Geerbt von ToolStripRenderer)
DrawToolStripBackground(ToolStripRenderEventArgs)

Zeichnet den Hintergrund für einen ToolStrip.

(Geerbt von ToolStripRenderer)
DrawToolStripBorder(ToolStripRenderEventArgs)

Zeichnet den Rahmen für einen ToolStrip.

(Geerbt von ToolStripRenderer)
DrawToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Zeichnet den Hintergrund des ToolStripContentPanel.

(Geerbt von ToolStripRenderer)
DrawToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Zeichnet den Hintergrund des ToolStripPanel.

(Geerbt von ToolStripRenderer)
DrawToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Zeichnet den Hintergrund des ToolStripStatusLabel.

(Geerbt von ToolStripRenderer)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Initialize(ToolStrip)

Stellt beim Überschreiben in einer abgeleiteten Klasse die benutzerdefinierte Initialisierung des angegebenen ToolStrip bereit.

(Geerbt von ToolStripRenderer)
InitializeContentPanel(ToolStripContentPanel)

Initialisiert das angegebene ToolStripContentPanel.

(Geerbt von ToolStripRenderer)
InitializeItem(ToolStripItem)

Stellt beim Überschreiben in einer abgeleiteten Klasse die benutzerdefinierte Initialisierung des angegebenen ToolStripItem bereit.

(Geerbt von ToolStripRenderer)
InitializePanel(ToolStripPanel)

Initialisiert das angegebene ToolStripPanel.

(Geerbt von ToolStripRenderer)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnRenderArrow(ToolStripArrowRenderEventArgs)

Löst das RenderArrow-Ereignis aus.

OnRenderButtonBackground(ToolStripItemRenderEventArgs)

Löst das RenderButtonBackground-Ereignis aus.

OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs)

Löst das RenderDropDownButtonBackground-Ereignis aus.

OnRenderGrip(ToolStripGripRenderEventArgs)

Löst das RenderGrip-Ereignis aus.

OnRenderImageMargin(ToolStripRenderEventArgs)

Zeichnet den Hintergrund des Elements.

OnRenderItemBackground(ToolStripItemRenderEventArgs)

Löst das OnRenderItemBackground(ToolStripItemRenderEventArgs)-Ereignis aus.

(Geerbt von ToolStripRenderer)
OnRenderItemCheck(ToolStripItemImageRenderEventArgs)

Löst das RenderItemCheck-Ereignis aus.

OnRenderItemImage(ToolStripItemImageRenderEventArgs)

Löst das RenderItemImage-Ereignis aus.

OnRenderItemText(ToolStripItemTextRenderEventArgs)

Löst das RenderItemText-Ereignis aus.

OnRenderLabelBackground(ToolStripItemRenderEventArgs)

Löst das RenderLabelBackground-Ereignis aus.

OnRenderMenuItemBackground(ToolStripItemRenderEventArgs)

Löst das RenderMenuItemBackground-Ereignis aus.

OnRenderOverflowButtonBackground(ToolStripItemRenderEventArgs)

Löst das RenderOverflowButtonBackground-Ereignis aus.

OnRenderSeparator(ToolStripSeparatorRenderEventArgs)

Löst das RenderSeparator-Ereignis aus.

OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs)

Löst das OnRenderSplitButtonBackground-Ereignis aus.

OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs)

Löst das RenderStatusStripSizingGrip-Ereignis aus.

(Geerbt von ToolStripRenderer)
OnRenderToolStripBackground(ToolStripRenderEventArgs)

Löst das RenderToolStripBackground-Ereignis aus.

OnRenderToolStripBorder(ToolStripRenderEventArgs)

Löst das RenderToolStripBorder-Ereignis aus.

OnRenderToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Löst das RenderToolStripContentPanelBackground-Ereignis aus.

OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Löst das RenderToolStripPanelBackground-Ereignis aus.

OnRenderToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Löst das RenderToolStripStatusLabelBackground-Ereignis aus.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

RenderArrow

Tritt ein, wenn ein Pfeil auf einem ToolStripItem gerendert wird.

(Geerbt von ToolStripRenderer)
RenderButtonBackground

Tritt ein, wenn der Hintergrund für einen ToolStripButton gerendert wird.

(Geerbt von ToolStripRenderer)
RenderDropDownButtonBackground

Tritt ein, wenn der Hintergrund für einen ToolStripDropDownButton gerendert wird.

(Geerbt von ToolStripRenderer)
RenderGrip

Tritt ein, wenn der Verschiebepunkt von einem ToolStrip gerendert wird.

(Geerbt von ToolStripRenderer)
RenderImageMargin

Zeichnet den Rand zwischen einem Bild und seinem Container.

(Geerbt von ToolStripRenderer)
RenderItemBackground

Tritt ein, wenn der Hintergrund für einen ToolStripItem gerendert wird.

(Geerbt von ToolStripRenderer)
RenderItemCheck

Tritt ein, wenn das Bild für ein ausgewähltes ToolStripItem gerendert wird.

(Geerbt von ToolStripRenderer)
RenderItemImage

Tritt ein, wenn das Bild für ein ToolStripItem gerendert wird.

(Geerbt von ToolStripRenderer)
RenderItemText

Tritt ein, wenn der Text für ein ToolStripItem gerendert wird.

(Geerbt von ToolStripRenderer)
RenderLabelBackground

Tritt ein, wenn der Hintergrund für einen ToolStripLabel gerendert wird.

(Geerbt von ToolStripRenderer)
RenderMenuItemBackground

Tritt ein, wenn der Hintergrund für einen ToolStripMenuItem gerendert wird.

(Geerbt von ToolStripRenderer)
RenderOverflowButtonBackground

Tritt ein, wenn der Hintergrund einer Überlaufschaltfläche gerendert wird.

(Geerbt von ToolStripRenderer)
RenderSeparator

Tritt ein, wenn ein ToolStripSeparator gerendert wird.

(Geerbt von ToolStripRenderer)
RenderSplitButtonBackground

Tritt ein, wenn der Hintergrund für einen ToolStripSplitButton gerendert wird.

(Geerbt von ToolStripRenderer)
RenderStatusStripSizingGrip

Tritt ein, wenn sich der Anzeigestil ändert.

(Geerbt von ToolStripRenderer)
RenderToolStripBackground

Tritt ein, wenn der Hintergrund für einen ToolStrip gerendert wird.

(Geerbt von ToolStripRenderer)
RenderToolStripBorder

Tritt ein, wenn der Rahmen für einen ToolStrip gerendert wird.

(Geerbt von ToolStripRenderer)
RenderToolStripContentPanelBackground

Zeichnet den Hintergrund für ein ToolStripContentPanel.

(Geerbt von ToolStripRenderer)
RenderToolStripPanelBackground

Zeichnet den Hintergrund für ein ToolStripPanel.

(Geerbt von ToolStripRenderer)
RenderToolStripStatusLabelBackground

Zeichnet den Hintergrund für ein ToolStripStatusLabel.

(Geerbt von ToolStripRenderer)

Gilt für: