Gewusst wie: Festlegen des ToolStrip-Renderers zur Laufzeit

Sie können die Darstellung des ToolStrip-Steuerelements anpassen, indem Sie eine benutzerdefinierte ProfessionalColorTable-Klasse erstellen.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie eine benutzerdefinierte ProfessionalColorTable-Klasse erstellt wird. Diese Klasse definiert Farbverläufe für ein MenuStrip-Steuerelement und ein ToolStrip-Steuerelement.

Um dieses Codebeispiel zu verwenden, kompilieren Sie die Anwendung und führen sie aus und klicken dann auf Farben ändern, um die in der benutzerdefinierten ProfessionalColorTable-Klasse definierten Farbverläufe zu übernehmen.

Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms
Imports System.Drawing


...


' This code example demonstrates how to use a ProfessionalRenderer
' to define custom professional colors at runtime.
Class Form2
   Inherits Form

   Public Sub New()
      ' Create a new ToolStrip control.
      Dim ts As New ToolStrip()

      ' Populate the ToolStrip control.
      ts.Items.Add("Apples")
      ts.Items.Add("Oranges")
      ts.Items.Add("Pears")
      ts.Items.Add("Change Colors", Nothing, New EventHandler(AddressOf ChangeColors_Click))

      ' Create a new MenuStrip.
      Dim ms As New MenuStrip()

      ' Dock the MenuStrip control to the top of the form.
      ms.Dock = DockStyle.Top

      ' Add the top-level menu items.
      ms.Items.Add("File")
      ms.Items.Add("Edit")
      ms.Items.Add("View")
      ms.Items.Add("Window")

      ' Add the ToolStrip to Controls collection.
      Me.Controls.Add(ts)

      ' Add the MenuStrip control last.
      ' This is important for correct placement in the z-order.
      Me.Controls.Add(ms)
    End Sub

   ' This event handler is invoked when the "Change colors"
   ' ToolStripItem is clicked. It assigns the Renderer
   ' property for the ToolStrip control.
    Sub ChangeColors_Click(ByVal sender As Object, ByVal e As EventArgs)
        ToolStripManager.Renderer = New ToolStripProfessionalRenderer(New CustomProfessionalColors())
    End Sub
End Class

' This class defines the gradient colors for 
' the MenuStrip and the ToolStrip.
Class CustomProfessionalColors
   Inherits ProfessionalColorTable

   Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
      Get
         Return Color.BlueViolet
      End Get 
   End Property

   Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
      Get
         Return Color.CadetBlue
      End Get 
   End Property

   Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
      Get
         Return Color.CornflowerBlue
      End Get 
   End Property

   Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
      Get
         Return Color.Salmon
      End Get 
   End Property

   Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
      Get
         Return Color.OrangeRed
      End Get
    End Property

End Class
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;


...


// This code example demonstrates how to use a ProfessionalRenderer
// to define custom professional colors at runtime.
class Form2 : Form
{
    public Form2()
    {
        // Create a new ToolStrip control.
        ToolStrip ts = new ToolStrip();

        // Populate the ToolStrip control.
        ts.Items.Add("Apples");
        ts.Items.Add("Oranges");
        ts.Items.Add("Pears");
        ts.Items.Add(
            "Change Colors", 
            null, 
            new EventHandler(ChangeColors_Click));

        // Create a new MenuStrip.
        MenuStrip ms = new MenuStrip();

        // Dock the MenuStrip control to the top of the form.
        ms.Dock = DockStyle.Top;

        // Add the top-level menu items.
        ms.Items.Add("File");
        ms.Items.Add("Edit");
        ms.Items.Add("View");
        ms.Items.Add("Window");

        // Add the ToolStrip to Controls collection.
        this.Controls.Add(ts);

        // Add the MenuStrip control last.
        // This is important for correct placement in the z-order.
        this.Controls.Add(ms);
    }

    // This event handler is invoked when the "Change colors"
    // ToolStripItem is clicked. It assigns the Renderer
    // property for the ToolStrip control.
    void ChangeColors_Click(object sender, EventArgs e)
    {
        ToolStripManager.Renderer = 
            new ToolStripProfessionalRenderer(new CustomProfessionalColors());
    }
}

// This class defines the gradient colors for 
// the MenuStrip and the ToolStrip.
class CustomProfessionalColors : ProfessionalColorTable
{
    public override Color ToolStripGradientBegin
    { get { return Color.BlueViolet; } }

    public override Color ToolStripGradientMiddle
    { get { return Color.CadetBlue; } }

    public override Color ToolStripGradientEnd
    { get { return Color.CornflowerBlue; } }

    public override Color MenuStripGradientBegin
    { get { return Color.Salmon; } }

    public override Color MenuStripGradientEnd
    { get { return Color.OrangeRed; } }
}

Definieren einer benutzerdefinierten ProfessionalColorTable-Klasse

Die benutzerdefinierten Farbverläufe werden in der CustomProfessionalColors-Klasse definiert.

' This class defines the gradient colors for 
' the MenuStrip and the ToolStrip.
Class CustomProfessionalColors
   Inherits ProfessionalColorTable

   Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
      Get
         Return Color.BlueViolet
      End Get 
   End Property

   Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
      Get
         Return Color.CadetBlue
      End Get 
   End Property

   Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
      Get
         Return Color.CornflowerBlue
      End Get 
   End Property

   Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
      Get
         Return Color.Salmon
      End Get 
   End Property

   Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
      Get
         Return Color.OrangeRed
      End Get
    End Property

End Class
// This class defines the gradient colors for 
// the MenuStrip and the ToolStrip.
class CustomProfessionalColors : ProfessionalColorTable
{
    public override Color ToolStripGradientBegin
    { get { return Color.BlueViolet; } }

    public override Color ToolStripGradientMiddle
    { get { return Color.CadetBlue; } }

    public override Color ToolStripGradientEnd
    { get { return Color.CornflowerBlue; } }

    public override Color MenuStripGradientBegin
    { get { return Color.Salmon; } }

    public override Color MenuStripGradientEnd
    { get { return Color.OrangeRed; } }
}

Zuweisen eines benutzerdefinierten Renderers

Erstellen Sie einen neuen ToolStripProfessionalRenderer mit einer CustomProfessionalColors-Klasse, und weisen Sie ihn der ToolStripManager.Renderer-Eigenschaft zu.

' This event handler is invoked when the "Change colors"
' ToolStripItem is clicked. It assigns the Renderer
' property for the ToolStrip control.
 Sub ChangeColors_Click(ByVal sender As Object, ByVal e As EventArgs)
     ToolStripManager.Renderer = New ToolStripProfessionalRenderer(New CustomProfessionalColors())
 End Sub
// This event handler is invoked when the "Change colors"
// ToolStripItem is clicked. It assigns the Renderer
// property for the ToolStrip control.
void ChangeColors_Click(object sender, EventArgs e)
{
    ToolStripManager.Renderer = 
        new ToolStripProfessionalRenderer(new CustomProfessionalColors());
}

Kompilieren des Codes

Für dieses Beispiel ist Folgendes erforderlich:

  • Verweise auf die Assemblys System.Design, System.Drawing und System.Windows.Forms.

Informationen zum Erstellen dieses Beispiels über die Befehlszeile für Visual Basic oder Visual C# finden Sie unterErstellen von der Befehlszeile aus (Visual Basic) und Erstellen über die Befehlszeile mit csc.exe. Sie können dieses Beispiel auch in Visual Studio erstellen, indem Sie den Code in ein neues Projekt einfügen. Weitere Informationen finden Sie unter Gewusst wie: Kompilieren und Ausführen eines vollständigen Windows Forms-Codebeispiels mit Visual Studio und Gewusst wie: Kompilieren und Ausführen eines vollständigen Windows Forms-Codebeispiels mit Visual Studio und Gewusst wie: Kompilieren und Ausführen eines vollständigen Windows Forms-Codebeispiels mit Visual Studio und Gewusst wie: Kompilieren und Ausführen eines vollständigen Windows Forms-Codebeispiels mit Visual Studio und Gewusst wie: Kompilieren und Ausführen eines vollständigen Windows Forms-Codebeispiels mit Visual Studio.

Siehe auch

Referenz

ToolStripManager

ProfessionalColorTable

MenuStrip

ToolStrip

ToolStripProfessionalRenderer

Weitere Ressourcen

ToolStrip-Steuerelement (Windows Forms)