Udostępnij za pośrednictwem


ToolStripProfessionalRenderer Klasa

Definicja

Obsługuje funkcje malowania obiektów ToolStrip , stosując paletę niestandardową i usprawniony styl.

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

Przykłady

W poniższym przykładzie kodu pokazano, jak utworzyć złożoną kontrolkę, która naśladuje okienko nawigacji dostarczone przez program Microsoft® Outlook®. Aby uzyskać pełną listę kodu, zobacz How to: Create a Professionally Styled ToolStrip Control (Instrukcje: tworzenie profesjonalnie stylizowanej kontrolki ToolStrip).

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

Uwagi

ToolStripProfessionalRenderer Tworzy pióra i pędzle na podstawie zastępowalnej tabeli kolorów o nazwie ProfessionalColorTable.

Konstruktory

ToolStripProfessionalRenderer()

Inicjuje nowe wystąpienie klasy ToolStripProfessionalRenderer.

ToolStripProfessionalRenderer(ProfessionalColorTable)

Inicjuje nowe wystąpienie klasy ToolStripProfessionalRenderer.

Właściwości

ColorTable

Pobiera paletę kolorów używaną do malowania.

RoundedEdges

Pobiera lub ustawia wartość wskazującą, czy krawędzie kontrolek mają zaokrąglony, a nie kwadratowy lub ostry wygląd.

Metody

DrawArrow(ToolStripArrowRenderEventArgs)

Rysuje strzałkę na obiekcie ToolStripItem.

(Odziedziczone po ToolStripRenderer)
DrawButtonBackground(ToolStripItemRenderEventArgs)

Rysuje tło dla .ToolStripButton

(Odziedziczone po ToolStripRenderer)
DrawDropDownButtonBackground(ToolStripItemRenderEventArgs)

Rysuje tło dla .ToolStripDropDownButton

(Odziedziczone po ToolStripRenderer)
DrawGrip(ToolStripGripRenderEventArgs)

Rysuje uchwyt przenoszenia na obiekcie ToolStrip.

(Odziedziczone po ToolStripRenderer)
DrawImageMargin(ToolStripRenderEventArgs)

Rysuje spację wokół obrazu na obiekcie ToolStrip.

(Odziedziczone po ToolStripRenderer)
DrawItemBackground(ToolStripItemRenderEventArgs)

Rysuje tło dla .ToolStripItem

(Odziedziczone po ToolStripRenderer)
DrawItemCheck(ToolStripItemImageRenderEventArgs)

Rysuje obraz wskazujący ToolStripItem , że element jest w wybranym stanie.

(Odziedziczone po ToolStripRenderer)
DrawItemImage(ToolStripItemImageRenderEventArgs)

Rysuje obraz na obiekcie ToolStripItem.

(Odziedziczone po ToolStripRenderer)
DrawItemText(ToolStripItemTextRenderEventArgs)

Rysuje tekst na obiekcie ToolStripItem.

(Odziedziczone po ToolStripRenderer)
DrawLabelBackground(ToolStripItemRenderEventArgs)

Rysuje tło dla .ToolStripLabel

(Odziedziczone po ToolStripRenderer)
DrawMenuItemBackground(ToolStripItemRenderEventArgs)

Rysuje tło dla .ToolStripMenuItem

(Odziedziczone po ToolStripRenderer)
DrawOverflowButtonBackground(ToolStripItemRenderEventArgs)

Rysuje tło przycisku przepełnienia.

(Odziedziczone po ToolStripRenderer)
DrawSeparator(ToolStripSeparatorRenderEventArgs)

Rysuje element ToolStripSeparator.

(Odziedziczone po ToolStripRenderer)
DrawSplitButton(ToolStripItemRenderEventArgs)

Rysuje element ToolStripSplitButton.

(Odziedziczone po ToolStripRenderer)
DrawStatusStripSizingGrip(ToolStripRenderEventArgs)

Rysuje uchwyt rozmiaru.

(Odziedziczone po ToolStripRenderer)
DrawToolStripBackground(ToolStripRenderEventArgs)

Rysuje tło dla .ToolStrip

(Odziedziczone po ToolStripRenderer)
DrawToolStripBorder(ToolStripRenderEventArgs)

Rysuje obramowanie dla obiektu ToolStrip.

(Odziedziczone po ToolStripRenderer)
DrawToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

Rysuje tło obiektu ToolStripContentPanel.

(Odziedziczone po ToolStripRenderer)
DrawToolStripPanelBackground(ToolStripPanelRenderEventArgs)

Rysuje tło obiektu ToolStripPanel.

(Odziedziczone po ToolStripRenderer)
DrawToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

Rysuje tło obiektu ToolStripStatusLabel.

(Odziedziczone po ToolStripRenderer)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
Initialize(ToolStrip)

Po przesłonięciu w klasie pochodnej zapewnia niestandardową inicjację danego ToolStripelementu .

(Odziedziczone po ToolStripRenderer)
InitializeContentPanel(ToolStripContentPanel)

Inicjuje określony ToolStripContentPanelelement .

(Odziedziczone po ToolStripRenderer)
InitializeItem(ToolStripItem)

Po przesłonięciu w klasie pochodnej zapewnia niestandardową inicjację danego ToolStripItemelementu .

(Odziedziczone po ToolStripRenderer)
InitializePanel(ToolStripPanel)

Inicjuje określony ToolStripPanelelement .

(Odziedziczone po ToolStripRenderer)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnRenderArrow(ToolStripArrowRenderEventArgs)

RenderArrow Zgłasza zdarzenie.

OnRenderButtonBackground(ToolStripItemRenderEventArgs)

RenderButtonBackground Zgłasza zdarzenie.

OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs)

RenderDropDownButtonBackground Zgłasza zdarzenie.

OnRenderGrip(ToolStripGripRenderEventArgs)

RenderGrip Zgłasza zdarzenie.

OnRenderImageMargin(ToolStripRenderEventArgs)

Rysuje tło elementu.

OnRenderItemBackground(ToolStripItemRenderEventArgs)

OnRenderItemBackground(ToolStripItemRenderEventArgs) Zgłasza zdarzenie.

(Odziedziczone po ToolStripRenderer)
OnRenderItemCheck(ToolStripItemImageRenderEventArgs)

RenderItemCheck Zgłasza zdarzenie.

OnRenderItemImage(ToolStripItemImageRenderEventArgs)

RenderItemImage Zgłasza zdarzenie.

OnRenderItemText(ToolStripItemTextRenderEventArgs)

RenderItemText Zgłasza zdarzenie.

OnRenderLabelBackground(ToolStripItemRenderEventArgs)

RenderLabelBackground Zgłasza zdarzenie.

OnRenderMenuItemBackground(ToolStripItemRenderEventArgs)

RenderMenuItemBackground Zgłasza zdarzenie.

OnRenderOverflowButtonBackground(ToolStripItemRenderEventArgs)

RenderOverflowButtonBackground Zgłasza zdarzenie.

OnRenderSeparator(ToolStripSeparatorRenderEventArgs)

RenderSeparator Zgłasza zdarzenie.

OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs)

Podnosi zdarzenie OnRenderSplitButtonBackground.

OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs)

RenderStatusStripSizingGrip Zgłasza zdarzenie.

(Odziedziczone po ToolStripRenderer)
OnRenderToolStripBackground(ToolStripRenderEventArgs)

RenderToolStripBackground Zgłasza zdarzenie.

OnRenderToolStripBorder(ToolStripRenderEventArgs)

RenderToolStripBorder Zgłasza zdarzenie.

OnRenderToolStripContentPanelBackground(ToolStripContentPanelRenderEventArgs)

RenderToolStripContentPanelBackground Zgłasza zdarzenie.

OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs)

RenderToolStripPanelBackground Zgłasza zdarzenie.

OnRenderToolStripStatusLabelBackground(ToolStripItemRenderEventArgs)

RenderToolStripStatusLabelBackground Zgłasza zdarzenie.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Zdarzenia

RenderArrow

Występuje, gdy strzałka na obiekcie ToolStripItem jest renderowana.

(Odziedziczone po ToolStripRenderer)
RenderButtonBackground

Występuje, gdy tło dla pliku ToolStripButton jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderDropDownButtonBackground

Występuje, gdy tło dla pliku ToolStripDropDownButton jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderGrip

Występuje, gdy uchwyt przenoszenia dla wyrenderowane ToolStrip .

(Odziedziczone po ToolStripRenderer)
RenderImageMargin

Rysuje margines między obrazem a kontenerem.

(Odziedziczone po ToolStripRenderer)
RenderItemBackground

Występuje, gdy tło dla pliku ToolStripItem jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderItemCheck

Występuje, gdy obraz wybranego ToolStripItem obrazu jest renderowany.

(Odziedziczone po ToolStripRenderer)
RenderItemImage

Występuje, gdy obraz dla elementu ToolStripItem jest renderowany.

(Odziedziczone po ToolStripRenderer)
RenderItemText

Występuje, gdy tekst elementu ToolStripItem jest renderowany.

(Odziedziczone po ToolStripRenderer)
RenderLabelBackground

Występuje, gdy tło dla pliku ToolStripLabel jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderMenuItemBackground

Występuje, gdy tło dla pliku ToolStripMenuItem jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderOverflowButtonBackground

Występuje, gdy tło przycisku przepełnienia jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderSeparator

Występuje, gdy ToolStripSeparator element jest renderowany.

(Odziedziczone po ToolStripRenderer)
RenderSplitButtonBackground

Występuje, gdy tło dla pliku ToolStripSplitButton jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderStatusStripSizingGrip

Występuje, gdy styl wyświetlania zmieni się.

(Odziedziczone po ToolStripRenderer)
RenderToolStripBackground

Występuje, gdy tło dla pliku ToolStrip jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderToolStripBorder

Występuje, gdy obramowanie dla obiektu ToolStrip jest renderowane.

(Odziedziczone po ToolStripRenderer)
RenderToolStripContentPanelBackground

Rysuje tło obiektu ToolStripContentPanel.

(Odziedziczone po ToolStripRenderer)
RenderToolStripPanelBackground

Rysuje tło obiektu ToolStripPanel.

(Odziedziczone po ToolStripRenderer)
RenderToolStripStatusLabelBackground

Rysuje tło obiektu ToolStripStatusLabel.

(Odziedziczone po ToolStripRenderer)

Dotyczy